{ "info": { "author": "Scott Walton", "author_email": "s@cott.me.uk", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License (GPL)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Topic :: Database", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "\nYDBF\n====\n\nRead/write DBF (DBase/XBase) files from Python. This is a pure-Python\nimplementation with no external dependencies.\n\nQuickstart\n----------\n\n.. code-block::\n\n pip install ydbf-py3\n\nReading\n^^^^^^^\n\nThe entrypoint of YDbf is an ``open`` function:\n\n.. code-block:: python\n\n dbf = ydbf.open('simple.dbf')\n\nYou can use file name, or already opened (in binary mode) file:\n\n.. code-block:: python\n\n with ydbf.open('simple.dbf') as dbf:\n for record in dbf:\n ...\n\nEach record is represented as ``dict``\\ , where keys are names of fields.\n\nWriting\n^^^^^^^\n\nBy default, YDbf opens file for reading, but you may set option ``mode`` to\nopen for writing:\n\n.. code-block:: python\n\n with ydbf.open('simple.dbf', 'w', fields) as dbf:\n dbf.write(data)\n\nOr pass in a file handle:\n\n.. code-block:: python\n\n with open('simple.dbf', 'wb') as fh:\n dbf = ydbf.open(fh, 'w', fields)\n\n``fields`` is a structure description of DBF file, it is required option for\nwriting mode. Structure defined as sequence of field descriptions,\nwhere each fields described by tuple ``(NAME, TYP, SIZE, DEC)``. Where ``NAME``\nis a name of field, ``TYP`` -- ``DBF`` type of field (\\ ``'N'`` for number, ``'C'`` for\nchar, ``'D'`` for date, ``'L'`` for logical), DEC is a precision (useful for ``'N'``\ntype only). For example, like this:\n\n.. code-block:: python\n\n fields = [\n ('ID', 'N', 4, 0),\n ('VALUE', 'C', 40, 0),\n ('UPDATE', 'D', 8, 0),\n ('VISIBLE', 'L', 1, 0),\n ]\n\nYDbf uses unicode for ``'C'`` fields by default, so you may want to define\nencoding which be used for DBF file. Sadly, UTF-8 is not available, only\nold scrappy 8-bits.\n\n.. code-block:: python\n\n dbf = ydbf.open('simple.dbf', 'w', fields, encoding='cp1251')\n dbf.write(data)\n\nYDbf gets ``data`` as iterator where each item is a dict, where\nkeys are name of fields. For early defined example it may looks like\n\n.. code-block:: python\n\n data = [\n {'ID': 1, 'VALUE': 'ydbf', 'VISIBLE': True,\n 'UPDATE': datetime.date(2009, 7, 14)},\n {'ID': 2, 'VALUE': 'ydbf-dev', 'VISIBLE': False,\n 'UPDATE': datetime.date(2009, 5, 15)},\n {'ID': 3, 'VALUE': 'pytils', 'VISIBLE': True,\n 'UPDATE': datetime.date(2009, 5, 11)},\n ]\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.pyobject.ru/projects/YDbf", "keywords": "", "license": "GNU GPL2", "maintainer": "", "maintainer_email": "", "name": "ydbf-py3", "package_url": "https://pypi.org/project/ydbf-py3/", "platform": "", "project_url": "https://pypi.org/project/ydbf-py3/", "project_urls": { "Homepage": "http://www.pyobject.ru/projects/YDbf" }, "release_url": "https://pypi.org/project/ydbf-py3/0.7.post20180112/", "requires_dist": [ "six" ], "requires_python": "", "summary": "Pythonic reader and writer for DBF/XBase files", "version": "0.7.post20180112" }, "last_serial": 3483660, "releases": { "0.4.post20180112": [ { "comment_text": "", "digests": { "md5": "6b063345565aac0c4d5d3bcf2e3bbfe8", "sha256": "79ed4ff19271496019f782a9f86b554f4c5b96141e40095a4e3a953ae2b5ef25" }, "downloads": -1, "filename": "ydbf_py3-0.4.post20180112-py3-none-any.whl", "has_sig": false, "md5_digest": "6b063345565aac0c4d5d3bcf2e3bbfe8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21476, "upload_time": "2018-01-12T10:40:52", "url": "https://files.pythonhosted.org/packages/ef/3b/811986a8794ba6823ed9d0630243d948bb2a249883f807614e27a48e6fc8/ydbf_py3-0.4.post20180112-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "07c0b4f043c66e8eda0a53e81d31996c", "sha256": "3c9a4522c77f23705b33c581e26fd17435c2b7d5ebb36f715a1cfec05603337d" }, "downloads": -1, "filename": "ydbf-py3-0.4.post20180112.tar.gz", "has_sig": false, "md5_digest": "07c0b4f043c66e8eda0a53e81d31996c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15940, "upload_time": "2018-01-12T10:40:53", "url": "https://files.pythonhosted.org/packages/4b/02/0eb1fe90879deb75b0fe60fc7ce68017e4c1c753ae4158261919fa2168cc/ydbf-py3-0.4.post20180112.tar.gz" } ], "0.5.post20180112": [ { "comment_text": "", "digests": { "md5": "29a06a654eface9a97f442c054802889", "sha256": "7d1cda2333d657680ed6b26d5fa268af74410ad1e6a85a11ed25f2d31d6ac1fa" }, "downloads": -1, "filename": "ydbf_py3-0.5.post20180112-py3-none-any.whl", "has_sig": false, "md5_digest": "29a06a654eface9a97f442c054802889", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21484, "upload_time": "2018-01-12T10:47:32", "url": "https://files.pythonhosted.org/packages/b6/ce/41428da475e77d043523ca9807ba0c60ad4bdfd252dece82d3bd9e31eb61/ydbf_py3-0.5.post20180112-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e75922119177ad4f4daefb15d9db1971", "sha256": "641e7ac1cadb2bbfca7a6519374cdb568dbee6b65ef66e341a6179c3a536ac63" }, "downloads": -1, "filename": "ydbf-py3-0.5.post20180112.tar.gz", "has_sig": false, "md5_digest": "e75922119177ad4f4daefb15d9db1971", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15902, "upload_time": "2018-01-12T10:47:34", "url": "https://files.pythonhosted.org/packages/be/90/024473daecbd9032d0406046669c478634155d21d37ad2066953adc8508f/ydbf-py3-0.5.post20180112.tar.gz" } ], "0.6.post20180112": [ { "comment_text": "", "digests": { "md5": "1e73a4ae7e7be6db94e2cb7b88670f81", "sha256": "83183a9b40737a4ae6fac77c4c2784202b1397c5a4196b1dcf6b0fb4ebcae4b0" }, "downloads": -1, "filename": "ydbf_py3-0.6.post20180112-py3-none-any.whl", "has_sig": false, "md5_digest": "1e73a4ae7e7be6db94e2cb7b88670f81", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21494, "upload_time": "2018-01-12T11:00:22", "url": "https://files.pythonhosted.org/packages/0c/50/1a62f90ecaa5e5d054ba8165ee22288680bd1fa999eeb240b5881d6b5499/ydbf_py3-0.6.post20180112-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "25c67da2407355a9b3735e97d0224fd9", "sha256": "f895dde4106e8aad2b2530bbfe6ba79185136eaafb504f359ba88b543bd9f53c" }, "downloads": -1, "filename": "ydbf-py3-0.6.post20180112.tar.gz", "has_sig": false, "md5_digest": "25c67da2407355a9b3735e97d0224fd9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15911, "upload_time": "2018-01-12T11:00:25", "url": "https://files.pythonhosted.org/packages/6c/68/83b2ea4f88d19c5b0266d90a3183d433ee251a982dbbea774f8428c0b510/ydbf-py3-0.6.post20180112.tar.gz" } ], "0.7.post20180112": [ { "comment_text": "", "digests": { "md5": "38ec147ea43c786095ba6f5566923fc0", "sha256": "e950872706b58c1e5e560b0b7fbea6769ebdf0fbc675dea72b58726575d96d6a" }, "downloads": -1, "filename": "ydbf_py3-0.7.post20180112-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "38ec147ea43c786095ba6f5566923fc0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23183, "upload_time": "2018-01-12T11:01:48", "url": "https://files.pythonhosted.org/packages/2f/50/27d640c356bf04bf9120a600dde2788b8322bd9d46a5cd1d88851571345a/ydbf_py3-0.7.post20180112-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bd6d579e3b46c23f86a0a9a702c01ce9", "sha256": "1d81b819524ca0191c47057c728a2b6ef76141370574af29e0b7a299211f30ab" }, "downloads": -1, "filename": "ydbf-py3-0.7.post20180112.tar.gz", "has_sig": false, "md5_digest": "bd6d579e3b46c23f86a0a9a702c01ce9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16171, "upload_time": "2018-01-12T11:01:50", "url": "https://files.pythonhosted.org/packages/34/d8/0f3c98f6b189049e884d6d5cbd6a284ec52410384fde0380870a8d23afc6/ydbf-py3-0.7.post20180112.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "38ec147ea43c786095ba6f5566923fc0", "sha256": "e950872706b58c1e5e560b0b7fbea6769ebdf0fbc675dea72b58726575d96d6a" }, "downloads": -1, "filename": "ydbf_py3-0.7.post20180112-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "38ec147ea43c786095ba6f5566923fc0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23183, "upload_time": "2018-01-12T11:01:48", "url": "https://files.pythonhosted.org/packages/2f/50/27d640c356bf04bf9120a600dde2788b8322bd9d46a5cd1d88851571345a/ydbf_py3-0.7.post20180112-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bd6d579e3b46c23f86a0a9a702c01ce9", "sha256": "1d81b819524ca0191c47057c728a2b6ef76141370574af29e0b7a299211f30ab" }, "downloads": -1, "filename": "ydbf-py3-0.7.post20180112.tar.gz", "has_sig": false, "md5_digest": "bd6d579e3b46c23f86a0a9a702c01ce9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16171, "upload_time": "2018-01-12T11:01:50", "url": "https://files.pythonhosted.org/packages/34/d8/0f3c98f6b189049e884d6d5cbd6a284ec52410384fde0380870a8d23afc6/ydbf-py3-0.7.post20180112.tar.gz" } ] }