Skip to main content

Interfaces for an in-memory datastore and calc framework using marshmallow + pandas

Project description

binx

https://img.shields.io/pypi/v/binx.svg https://circleci.com/gh/bsnacks000/binx.svg?style=svg Documentation Status
version:

0.4.0

binx is a small Python framework for application data modeling and transformation. It’s API relies heavily on marshmallow for validation, object serialization and storage. It’s true purpose however is to expose an API that allows developers to model procedural code into directed, acyclic graphs of arbitrary complexity. A user can define an application or library as a family of binx.Collection objects (nodes) and use the binx.adapter module (edges) to create a network of data transformations while guaranteeing data integrity along the way.

The main goal of the project is to provide a simple API for data scientists, engineers or developers who write alot of procedural code to be able to organize their projects using a declarative style similar to how one might approach writing a web application using DRY principles.

==^..^==

Features

This set of interfaces are designed to help you quickly scale up your notebooks/scripts and create uniformity between your projects!

binx provides:

  • A declarative style in memory datastore (collections.py)

  • A declarative Adapter API that helps model/manage relationships and data transformations between collections (adapter.py)

  • consistent API for moving your data between json, py-objs, and pandas dataframes

History

0.1.2 (2018-05-28)

  • Port initial API from bema project

  • Port original unittests

  • change marshmallow api to 2.x

0.2.0 (2018-07-03)

  • Built adapter module and related functionality

  • removed calc_factory API (possibly will be re-included in a later build)

  • created the CollectionBuilder class

0.2.1 (2018-07-12)

  • patched issue relating to datetime/datestrings not being parsed by collections

0.2.2 (2018-07-26)

  • patched issue relating to introspection of required columns (issue #7-#8)

0.2.3 (2018-10-01)

  • clean up and fixes to cli

0.3.0 (2019-07-14)

Fixes some long standing issues and adds some new features.

  • adapter.py - kwarg to accumulate optionally accumulate intermediate collections in adapter chain

  • registry.py - A user warning is issued instead of exception if an identical class path name is overwritten

  • collection.py - fixed errors related to creating dataframes from NoneType

  • adapter.py - added a new base class PluggableAdapter to ease development of the adapter chain

  • collection.py - CollectionBuilder.build now excepts an optional name arg. Will attempt to auto-parse name from serializer_class.

0.3.1 (2019-07-15)

  • Adds a context variable to the AdapterChainError that can be accessed if the error is caught

0.3.2 (2019-08-21)

Final release that is compatible with marshmallow 2.x

  • Pins marshmallow to v0.20.2

  • Final release supporting marshmallow 2.x functionality

0.4.0 (2019-08-23)

A minor release that internally breaks backward compatibility with marshmallow-2.x. Adds new feature to that allows loading data and setting ma configuration directly from Collection constructor.

  • private api changes to Serializer and Collection classes.

  • data can now be loaded via the Collection constructor.

  • kwargs can be passed to the underlying ma schema at runtime.

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

binx-0.4.0.tar.gz (36.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

binx-0.4.0-py2.py3-none-any.whl (16.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file binx-0.4.0.tar.gz.

File metadata

  • Download URL: binx-0.4.0.tar.gz
  • Upload date:
  • Size: 36.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.7.2

File hashes

Hashes for binx-0.4.0.tar.gz
Algorithm Hash digest
SHA256 20a4e3962015f7f68bc564bf1b16abdd7454669dec395f95227163596ede1c23
MD5 a93e7e20bb06ee16373a09dfb076a7fb
BLAKE2b-256 f9a7bbc943db46b962332e2e371f646e3952f0ef2e04a955b4faeab768ac78fb

See more details on using hashes here.

File details

Details for the file binx-0.4.0-py2.py3-none-any.whl.

File metadata

  • Download URL: binx-0.4.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 16.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.7.2

File hashes

Hashes for binx-0.4.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e9c272059a19bb2cd5197963b8c127237d39560080d03ae1b97f99ff30876f94
MD5 abc2840216c7fbce6b77f327afef5755
BLAKE2b-256 6305745cf676997341ba9f3993f3b1d750b86e31dffe75fcacc9dd1767d1b2ea

See more details on using hashes here.

Supported by

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