# Path: blitzdb/fields/char.py
# class CharField(BaseField):
# 
#     def __init__(self, length=None, *args, **kwargs):
#         self.length = length
#         super(CharField, self).__init__(*args, **kwargs)
# 
# Path: blitzdb/fields/base.py
# class BaseField(object):
# 
#     def __init__(
#         self,
#         key=None,
#         nullable=True,
#         unique=False,
#         default=None,
#         primary_key=False,
#         server_default=None,
#         indexed=False,
#     ):
#         self.key = key
#         self.nullable = nullable
#         self.indexed = indexed
#         self.primary_key = primary_key
#         self.default = default
#         self.server_default = server_default
#         self.unique = unique


import copy
import logging
import uuid
import six
from blitzdb.fields import CharField
from blitzdb.fields.base import BaseField
    Document attributes are accessible as class attributes:

    .. code-block:: python

       marlon = Actor({'name' : 'Marlon Brando', 'birth_year' : 1924})

       print("%s was born in %d" % (marlon.name,marlon.birth_year))

    In case one of your attributes shadows a class attribute or function, you can still access it
    using the `attributes` attribute.

    example::

      fail = Document({'delete': False,'save' : True})

      print(fail.delete) #will print <bound method Document.save ...>

      print(fail.attributes['delete']) #will print 'False'

    **Defining "non-database" attributes**

    Attributes that begin with an underscore (_) will not be stored in the :py:meth:`attributes`
    dictionary but as normal instance attributes of the document. This is useful if you need to
    define e.g. some helper variables that you don't want to store in the database.
    """

    abstract = True

    class Meta:


# Path: blitzdb/fields/char.py
# class CharField(BaseField):
# 
#     def __init__(self, length=None, *args, **kwargs):
#         self.length = length
#         super(CharField, self).__init__(*args, **kwargs)
# 
# Path: blitzdb/fields/base.py
# class BaseField(object):
# 
#     def __init__(
#         self,
#         key=None,
#         nullable=True,
#         unique=False,
#         default=None,
#         primary_key=False,
#         server_default=None,
#         indexed=False,
#     ):
#         self.key = key
#         self.nullable = nullable
#         self.indexed = indexed
#         self.primary_key = primary_key
#         self.default = default
#         self.server_default = server_default
#         self.unique = unique


# Path: blitzdb/document.py
import copy
import logging
import uuid
import six
from blitzdb.fields import CharField
from blitzdb.fields.base import BaseField

    Document attributes are accessible as class attributes:

    .. code-block:: python

       marlon = Actor({'name' : 'Marlon Brando', 'birth_year' : 1924})

       print("%s was born in %d" % (marlon.name,marlon.birth_year))

    In case one of your attributes shadows a class attribute or function, you can still access it
    using the `attributes` attribute.

    example::

      fail = Document({'delete': False,'save' : True})

      print(fail.delete) #will print <bound method Document.save ...>

      print(fail.attributes['delete']) #will print 'False'

    **Defining "non-database" attributes**

    Attributes that begin with an underscore (_) will not be stored in the :py:meth:`attributes`
    dictionary but as normal instance attributes of the document. This is useful if you need to
    define e.g. some helper variables that you don't want to store in the database.
    """

    abstract = True

    class Meta:


        PkType = CharField(length = 32,primary_key = True,indexed = True,nullable = False)