Skip to main content

PyDbLite, a fast, pure-Python in-memory database

Project description

.. |build-status| image:: https://api.travis-ci.org/bendikro/PyDbLite.svg?branch=master
:target: https://travis-ci.org/bendikro/PyDbLite

.. |docs| image:: https://readthedocs.org/projects/pydblite/badge/?version=latest
:target: https://pydblite.readthedocs.org
:alt: Documentation Status

.. |pypi| image:: http://img.shields.io/pypi/v/pydblite.png
:alt: PYPI Package
:target: https://pypi.python.org/pypi/PyDbLite

PyDbLite
=============

PyDbLite is

* a fast, pure-Python, untyped, in-memory database engine, using
Python syntax to manage data, instead of SQL
* a pythonic interface to SQLite using the same syntax as the
pure-Python engine for most operations (except database connection
and table creation because of each database specificities)

PyDbLite is suitable for a small set of data where a fully fledged DB would be overkill.

Supported Python versions: 2.6+

Build status: |build-status|

Read the documentation: |docs|

Installation
---------------

PIP
~~~~~~~~~

.. code-block:: bash

pip install pydblite

Manually
~~~~~~~~~

Download the source and execute

.. code-block:: bash

python setup.py install


Changelog
*********


3.0.4 (2016-04-17)
==================

* Added functions `__enter__()
<api.rst#pydblite.sqlite.Database.__enter__>`_ and `__exit__()
<api.rst#pydblite.sqlite.Database.__exit__>`_ to `Database
<api.rst#pydblite.sqlite.Database>`_


3.0.3 (2016-04-02)
==================

* Fixed bug where db_filter argument of function `_len()
<api.rst#pydblite.sqlite.Table._len>`_, `get_unique_ids()
<api.rst#pydblite.sqlite.Table.get_unique_ids>`_, and
`get_group_count() <api.rst#pydblite.sqlite.Table.get_group_count>`_
was ignored if filter returns 0 matches.


3.0.2 (2015-04-18)
==================

* Fixed bug (#1) in Base where calling `db.create()
<api.rst#pydblite.pydblite._Base.create>`_ without supplying a value
for the "mode" parameter with give an error.


3.0.1 (2015-02-23)
==================

* Fixed bug in Base where opening existing database would fail.


3.0 (2014-09-18)
================

Note: Some changes in this release are not backwards compatible with
2.X versions.

* pydblite and sqlite are rewritten to use a common Filter object.

* Tests have been improved and standardised in `Unit tests
<http://pydblite.readthedocs.org/en/latest/unittests.html>`_.

* Updated `Example code
<http://pydblite.readthedocs.org/en/latest/examples.html>`_.

* Renamed module and package names to lower case according to `PEP 8
<https://www.python.org/dev/peps/pep-0008>`_

* Converted to UNIX line endings and follow `PEP 8
<https://www.python.org/dev/peps/pep-0008>`_ code style.

* MySQL adapter has been dropped until it can be tested with unit
tests.


2.6
===

* if db exists, read field names on instance creation

* allow add_field on an instance even if it was not open()

* attribute path is the path of the database in the file system (was
called "name" in previous versions)

* attribute name is the base name of the database, without the
extension

* adapt code to run on Python 2 and Python 3


2.5
===

* test is now in folder "test"

* SQLite changes:

* many changes to support "legacy" SQLite databases

* no control on types declared in CREATE TABLE or ALTER TABLE

* no control on value types in INSERT or UPDATE

* no version number in records

* add methods to specify a conversion function for fields after a
SELECT

* change names to be closer to SQLite names

* a class Database to modelise the database

* a class Table (not Base) for each table in the database


2.4
===

* add BSD Licence

* raise exception if unknown fields in insert


2.3
===

* introduce syntax (db('name')>'f') & (db('age') == 30)


2.2
===

* add __contains__

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

PyDbLite-3.0.4.tar.gz (510.2 kB view details)

Uploaded Source

File details

Details for the file PyDbLite-3.0.4.tar.gz.

File metadata

  • Download URL: PyDbLite-3.0.4.tar.gz
  • Upload date:
  • Size: 510.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for PyDbLite-3.0.4.tar.gz
Algorithm Hash digest
SHA256 79ed97d17b5954c6fa8927d9f36033cb4486d1304005057d506ac1dee999bad6
MD5 98296538ce1f0313dc5347bb9fd82dc8
BLAKE2b-256 55bca8e7078bd50411d43c05407cfefc0fd1d42e5722c1d544bd243125de30a8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page