diff --git a/.gitignore b/.gitignore index 00d6bc1..1fd6a8d 100644 --- a/.gitignore +++ b/.gitignore @@ -101,3 +101,6 @@ ENV/ # mypy .mypy_cache/ + +# vscode +.vscode/ diff --git a/.travis.yml b/.travis.yml index 8f00fa4..aa7814e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,7 @@ dist: xenial language: python python: + - 3.8.0 - 3.7.3 - 3.6 - 3.5 diff --git a/AUTHORS.rst b/AUTHORS.rst index 2f64f3a..f7205f5 100644 --- a/AUTHORS.rst +++ b/AUTHORS.rst @@ -5,7 +5,7 @@ Credits Development Lead ---------------- -* @vikilab +* Juan Manuel Cristóbal Moreno Contributors ------------ diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 898f446..673eb25 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -15,7 +15,7 @@ Types of Contributions Report Bugs ~~~~~~~~~~~ -Report bugs at https://github.com/vikilab/ragnar/issues. +Report bugs at https://github.com/juanmcristobal/ragnar/issues. If you are reporting a bug, please include: @@ -45,7 +45,7 @@ articles, and such. Submit Feedback ~~~~~~~~~~~~~~~ -The best way to send feedback is to file an issue at https://github.com/vikilab/ragnar/issues. +The best way to send feedback is to file an issue at https://github.com/juanmcristobal/ragnar/issues. If you are proposing a feature: @@ -62,7 +62,7 @@ Ready to contribute? Here's how to set up `ragnar` for local development. 1. Fork the `ragnar` repo on GitHub. 2. Clone your fork locally:: - $ git clone https://github.com/vikilab/ragnar.git + $ git clone git@github.com:juanmcristobal/ragnar.git 3. Install your local copy into a virtualenv. Assuming you have virtualenvwrapper installed, this is how you set up your fork for local development:: @@ -102,8 +102,8 @@ Before you submit a pull request, check that it meets these guidelines: 2. If the pull request adds functionality, the docs should be updated. Put your new functionality into a function with a docstring, and add the feature to the list in README.rst. -3. The pull request should work for Python 2.7, 3.4, 3.5 and 3.6, and for PyPy. Check - https://travis-ci.org/vikilab/ragnar/pull_requests +3. The pull request should work for Python 3.5, 3.6, 3.7, 3.8 and for PyPy. Check + https://travis-ci.org/github/juanmcristobal/ragnar/pull_requests and make sure that the tests pass for all supported Python versions. Tips diff --git a/LICENSE b/LICENSE index 09eaf9e..6b65fcc 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2019, vikilab +Copyright (c) 2019, @juanmcristobal Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.rst b/README.rst index 4acf651..073cef2 100644 --- a/README.rst +++ b/README.rst @@ -1,20 +1,20 @@ ====== -ragnar +Ragnar ====== .. image:: https://img.shields.io/pypi/v/ragnar.svg :target: https://pypi.python.org/pypi/ragnar -.. image:: https://img.shields.io/travis/vikilab/ragnar.svg - :target: https://travis-ci.org/vikilab/ragnar +.. image:: https://img.shields.io/travis/juanmcristobal/ragnar.svg + :target: https://travis-ci.org/juanmcristobal/ragnar .. image:: https://readthedocs.org/projects/ragnar/badge/?version=latest :target: https://ragnar.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status -.. image:: https://coveralls.io/repos/github/vikilab/ragnar/badge.svg?branch=master - :target: https://coveralls.io/github/vikilab/ragnar?branch=master +.. image:: https://coveralls.io/repos/github/juanmcristobal/ragnar/badge.svg?branch=master + :target: https://coveralls.io/github/juanmcristobal/ragnar?branch=master @@ -28,9 +28,25 @@ Ragnar is a lightweight Extract-Transform-Load (ETL) framework for Python 3.5+. Features -------- -* TODO +* Keeps a functional programming philosophy. +* Code reuse instead of "re-inventing the wheel" in each script. +* Customizable for your organization's particular tasks. -Credits +Example ------- +A pipeline that applies capital letters to the list and then filters through the one starting with "B": + +.. code:: python + + >>> from ragnar.stream import Stream + >>> st = Stream(["apple", "banana", "cherry"]) + >>> st.do(lambda x: x.upper()) + + >>> st.filter(lambda x:x.startswith("B")) + + >>> for row in st: + ... print(row) + BANANA + diff --git a/docs/conf.py b/docs/conf.py index 6d45627..54ba241 100755 --- a/docs/conf.py +++ b/docs/conf.py @@ -48,8 +48,8 @@ # General information about the project. project = u'ragnar' -copyright = u"2019, vikilabs" -author = u"vikilabs" +copyright = u"2019, @juanmcristobal" +author = u"@juanmcristobal" # The version info for the project you're documenting, acts as replacement # for |version| and |release|, also used in various other places throughout @@ -131,7 +131,7 @@ latex_documents = [ (master_doc, 'ragnar.tex', u'ragnar Documentation', - u'vikilabs', 'manual'), + u'@juanmcristobal', 'manual'), ] diff --git a/docs/installation.rst b/docs/installation.rst index 42ee7d7..8cc5650 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -1,51 +1,16 @@ .. highlight:: shell -============ -Installation -============ +Installation and Dependencies +============================= +Ragnar is pure Python and so is easily installable by the standard +dependency manager ``pip``:: -Stable release --------------- + pip install ragnar -To install ragnar, run this command in your terminal: +Ragnar endeavors to be a very light dependency. It accomplishes this in +three ways: -.. code-block:: console - - $ pip install ragnar - -This is the preferred method to install ragnar, as it will always install the most recent stable release. - -If you don't have `pip`_ installed, this `Python installation guide`_ can guide -you through the process. - -.. _pip: https://pip.pypa.io -.. _Python installation guide: http://docs.python-guide.org/en/latest/starting/installation/ - - -From sources ------------- - -The sources for ragnar can be downloaded from the `Github repo`_. - -You can either clone the public repository: - -.. code-block:: console - - $ git clone git://github.com/juanmcrisobal/ragnar - -Or download the `tarball`_: - -.. code-block:: console - - $ curl -OL https://github.com/juanmcrisobal/ragnar/tarball/master - -Once you have a copy of the source, you can install it with: - -.. code-block:: console - - $ python setup.py install - - -.. _Github repo: https://github.com/juanmcrisobal/ragnar -.. _tarball: https://github.com/juanmcrisobal/ragnar/tarball/master +1. Ragnar is pure Python +2. Ragnar relies only on the standard library +3. Ragnar simultaneously supports Python versions 3.5+ and PyPy \ No newline at end of file diff --git a/docs/usage.rst b/docs/usage.rst index c517521..1e2e67b 100644 --- a/docs/usage.rst +++ b/docs/usage.rst @@ -4,4 +4,4 @@ Usage To use ragnar in a project:: - import ragnar + from ragnar.stream import Stream diff --git a/ragnar/__init__.py b/ragnar/__init__.py index b4c4209..1758a66 100644 --- a/ragnar/__init__.py +++ b/ragnar/__init__.py @@ -2,6 +2,6 @@ """Top-level package for ragnar.""" -__author__ = """vikilabs""" -__email__ = 'vikilab.library@gmail.com' -__version__ = '0.1.1' +__author__ = """@juanmcristobal""" +__email__ = '@juanmcristobal' +__version__ = '0.3.0' diff --git a/requirements_dev.txt b/requirements_dev.txt index 95680b5..15cff35 100644 --- a/requirements_dev.txt +++ b/requirements_dev.txt @@ -1,14 +1,16 @@ -pip==19.1 -pytest==4.4.1 -flake8==3.7.7 +pip==20.1.1 +pytest==5.4.3 +flake8==3.8.3 Sphinx==2.0.1 -twine==1.13.0 -coverage==4.5.3 -tox==3.9.0 -Faker==1.0.5 -coveralls==1.7.0 -pytest-cov==2.6.1 -sphinx-rtd-theme==0.4.3 -wheel==0.33.1 -watchdog==0.9.0 -bumpversion==0.5.3 +twine==1.15.0 +coverage==5.2.1 +tox==3.18.0 +Faker==4.1.1 +coveralls==2.1.1 +pytest-cov==2.10.0 +sphinx-rtd-theme==0.5.0 +wheel==0.34.2 +watchdog==0.10.3 +bumpversion==0.6.0 +pyyaml==5.3.1 +argh==0.26.2 \ No newline at end of file diff --git a/setup.cfg b/setup.cfg index c451a0f..b97ed6b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.1.1 +current_version = 0.3.0 commit = True tag = True @@ -26,4 +26,3 @@ collect_ignore = ['setup.py'] [pytest] norecursedirs = tests/helpers - diff --git a/setup.py b/setup.py index 64a1368..1160719 100644 --- a/setup.py +++ b/setup.py @@ -18,8 +18,8 @@ test_requirements = [] setup( - author="vikilab", - author_email='vikilab.library@gmail.com', + author="@juanmcristobal", + author_email='@juanmcristobal', classifiers=[ 'Development Status :: 4 - Beta', 'Intended Audience :: Developers', @@ -30,6 +30,7 @@ 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', ], description="lightweight Extract-Transform-Load (ETL) framework for Python 3+", entry_points={ @@ -47,7 +48,7 @@ setup_requires=setup_requirements, test_suite='tests', tests_require=test_requirements, - url='https://github.com/vikilab/ragnar', - version='0.1.1', + url='https://github.com/juanmcristobal/ragnar', + version='0.3.0', zip_safe=False, ) diff --git a/tox.ini b/tox.ini index 2689d42..4152629 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py35, py36, py37, flake8 +envlist = py35, py36, py37, py38, flake8 [travis] python = @@ -7,7 +7,6 @@ python = 3.6: py36 3.5: py35 3.4: py34 - 2.7: py27 [testenv:flake8] basepython = python