Metadata-Version: 2.0
Name: boa-str
Version: 1.1.0
Summary: Convert strings to snakecase
Home-page: https://github.com/astronomerio/boa
Author: Astronomer
Author-email: taylor@astronomer.io
License: MIT License
Keywords: boa snakecase snake_case snake case inflector astronomer astronomerio
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Provides-Extra: dev
Requires-Dist: codecov; extra == 'dev'
Requires-Dist: cov-core; extra == 'dev'
Requires-Dist: nose2; extra == 'dev'
Requires-Dist: flake8; extra == 'dev'
Requires-Dist: invoke; extra == 'dev'
Requires-Dist: pycodestyle; extra == 'dev'
Requires-Dist: twine; extra == 'dev'
Provides-Extra: test
Requires-Dist: codecov; extra == 'test'
Requires-Dist: cov-core; extra == 'test'
Requires-Dist: nose2; extra == 'test'

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]

🐍️🐍️🐍️


