Boa
.. image:: https://img.shields.io/pypi/v/boa-str.svg
:target: https://pypi.python.org/pypi/boa-str
:alt: PyPI
.. image:: https://img.shields.io/circleci/project/github/astronomerio/boa.svg
:target: https://circleci.com/gh/astronomerio/boa
:alt: CircleCI
.. image:: https://codecov.io/gh/astronomerio/boa/branch/master/graph/badge.svg
:target: https://codecov.io/gh/astronomerio/boa
:alt: Codecov
Boa is a Python package for normalizing and converting strings to snakecase.
For example, it translates the user-defined event 'User Buys Item'
to 'user_buys_item'
which can then be used in a file path in S3, or as the name of a schema or table in Redshift.
It also handles the more complex cases such as stripping punctuation and converting words from camelCase or PascalCase to snake_case (see examples below).
Installation
Install in your virtual environment:
.. code-block:: console
$ pip install boa-str
Quickstart
.. code-block:: python
>>> import boa
>>> my_str = 'Hello Boa'
>>> boa.constrict(my_str)
'hello_boa'
Examples
.. code-block:: python
>>> import boa
>>> boa.constrict('toInfinityAndBeyond')
'to_infinity_and_beyond'
>>> boa.constrict('Welcome-to-planet-Earth!')
'welcome_to_planet_earth'
Tests
We use nose2 <https://pypi.python.org/pypi/nose2>
_ and coverage <https://pypi.python.org/pypi/coverage>
_ for unit tests.
Install with test requirements:
.. code-block:: console
$ pip install boa-str[test]
Then run:
.. code-block:: console
$ invoke test
Style
.. code-block:: console
$ invoke lint
Contribute
Clone the repo, then install with dev requirements which also includes test requirements:
.. code-block:: console
$ git clone https://github.com/astronomerio/boa/
$ cd boa
$ pip install .[dev]
🐍️🐍️🐍️