Skip to content

Commit b4f9b08

Browse files
authored
Merge pull request #1 from sophilabs/setup
Skeleton generated by cookiecutter-pypackage.
2 parents d01da28 + f6b8b99 commit b4f9b08

16 files changed

+473
-0
lines changed

.editorconfig

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# http://editorconfig.org
2+
3+
root = true
4+
5+
[*]
6+
indent_style = space
7+
indent_size = 4
8+
trim_trailing_whitespace = true
9+
insert_final_newline = true
10+
charset = utf-8
11+
end_of_line = lf
12+
13+
[*.bat]
14+
indent_style = tab
15+
end_of_line = crlf
16+
17+
[LICENSE]
18+
insert_final_newline = false
19+
20+
[Makefile]
21+
indent_style = tab

.travis.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Config file for automatic testing at travis-ci.org
2+
# This file will be regenerated if you run travis_pypi_setup.py
3+
4+
language: python
5+
python: 3.5
6+
7+
env:
8+
- TOXENV=py35
9+
- TOXENV=py34
10+
- TOXENV=py33
11+
- TOXENV=py27
12+
- TOXENV=py26
13+
- TOXENV=pypy
14+
15+
# command to install dependencies, e.g. pip install -r requirements.txt --use-mirrors
16+
install: pip install -U tox
17+
18+
# command to run tests, e.g. python setup.py test
19+
script: tox -e ${TOXENV}
20+
21+

AUTHORS.rst

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
=======
2+
Credits
3+
=======
4+
5+
Development Lead
6+
----------------
7+
8+
* Sophilabs <[email protected]>
9+
10+
Contributors
11+
------------
12+
13+
* Javier Ayres <[email protected]>

CONTRIBUTING.rst

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
.. highlight:: shell
2+
3+
============
4+
Contributing
5+
============
6+
7+
Contributions are welcome, and they are greatly appreciated! Every
8+
little bit helps, and credit will always be given.
9+
10+
You can contribute in many ways:
11+
12+
Types of Contributions
13+
----------------------
14+
15+
Report Bugs
16+
~~~~~~~~~~~
17+
18+
Report bugs at https://github.com/lufte/learnregex/issues.
19+
20+
If you are reporting a bug, please include:
21+
22+
* Your operating system name and version.
23+
* Any details about your local setup that might be helpful in troubleshooting.
24+
* Detailed steps to reproduce the bug.
25+
26+
Fix Bugs
27+
~~~~~~~~
28+
29+
Look through the GitHub issues for bugs. Anything tagged with "bug"
30+
and "help wanted" is open to whoever wants to implement it.
31+
32+
Implement Features
33+
~~~~~~~~~~~~~~~~~~
34+
35+
Look through the GitHub issues for features. Anything tagged with "enhancement"
36+
and "help wanted" is open to whoever wants to implement it.
37+
38+
Write Documentation
39+
~~~~~~~~~~~~~~~~~~~
40+
41+
learnregex could always use more documentation, whether as part of the
42+
official learnregex docs, in docstrings, or even on the web in blog posts,
43+
articles, and such.
44+
45+
Submit Feedback
46+
~~~~~~~~~~~~~~~
47+
48+
The best way to send feedback is to file an issue at https://github.com/lufte/learnregex/issues.
49+
50+
If you are proposing a feature:
51+
52+
* Explain in detail how it would work.
53+
* Keep the scope as narrow as possible, to make it easier to implement.
54+
* Remember that this is a volunteer-driven project, and that contributions
55+
are welcome :)
56+
57+
Get Started!
58+
------------
59+
60+
Ready to contribute? Here's how to set up `learnregex` for local development.
61+
62+
1. Fork the `learnregex` repo on GitHub.
63+
2. Clone your fork locally::
64+
65+
$ git clone [email protected]:your_name_here/learnregex.git
66+
67+
3. Install your local copy into a virtualenv. Assuming you have virtualenvwrapper installed, this is how you set up your fork for local development::
68+
69+
$ mkvirtualenv learnregex
70+
$ cd learnregex/
71+
$ python setup.py develop
72+
73+
4. Create a branch for local development::
74+
75+
$ git checkout -b name-of-your-bugfix-or-feature
76+
77+
Now you can make your changes locally.
78+
79+
5. When you're done making changes, check that your changes pass flake8 and the tests, including testing other Python versions with tox::
80+
81+
$ flake8 learnregex tests
82+
$ python setup.py test or py.test
83+
$ tox
84+
85+
To get flake8 and tox, just pip install them into your virtualenv.
86+
87+
6. Commit your changes and push your branch to GitHub::
88+
89+
$ git add .
90+
$ git commit -m "Your detailed description of your changes."
91+
$ git push origin name-of-your-bugfix-or-feature
92+
93+
7. Submit a pull request through the GitHub website.
94+
95+
Pull Request Guidelines
96+
-----------------------
97+
98+
Before you submit a pull request, check that it meets these guidelines:
99+
100+
1. The pull request should include tests.
101+
2. If the pull request adds functionality, the docs should be updated. Put
102+
your new functionality into a function with a docstring, and add the
103+
feature to the list in README.rst.
104+
3. The pull request should work for Python 2.6, 2.7, 3.3, 3.4 and 3.5, and for PyPy. Check
105+
https://travis-ci.org/lufte/learnregex/pull_requests
106+
and make sure that the tests pass for all supported Python versions.
107+
108+
Tips
109+
----
110+
111+
To run a subset of tests::
112+
113+
114+
$ python -m unittest tests.test_learnregex

HISTORY.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
=======
2+
History
3+
=======
4+
5+
0.1.0 (2017-04-05)
6+
------------------
7+
8+
* First release on PyPI.

LICENSE

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
The MIT License (MIT)
2+
3+
Copyright (c) 2017 Sophilabs
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy of
6+
this software and associated documentation files (the "Software"), to deal in
7+
the Software without restriction, including without limitation the rights to
8+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9+
the Software, and to permit persons to whom the Software is furnished to do so,
10+
subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

MANIFEST.in

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
2+
include AUTHORS.rst
3+
4+
include CONTRIBUTING.rst
5+
include HISTORY.rst
6+
include LICENSE
7+
include README.rst
8+
9+
recursive-include tests *
10+
recursive-exclude * __pycache__
11+
recursive-exclude * *.py[co]
12+
13+
recursive-include docs *.rst conf.py Makefile make.bat *.jpg *.png *.gif

Makefile

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
.PHONY: clean clean-test clean-pyc clean-build docs help
2+
.DEFAULT_GOAL := help
3+
define BROWSER_PYSCRIPT
4+
import os, webbrowser, sys
5+
try:
6+
from urllib import pathname2url
7+
except:
8+
from urllib.request import pathname2url
9+
10+
webbrowser.open("file://" + pathname2url(os.path.abspath(sys.argv[1])))
11+
endef
12+
export BROWSER_PYSCRIPT
13+
14+
define PRINT_HELP_PYSCRIPT
15+
import re, sys
16+
17+
for line in sys.stdin:
18+
match = re.match(r'^([a-zA-Z_-]+):.*?## (.*)$$', line)
19+
if match:
20+
target, help = match.groups()
21+
print("%-20s %s" % (target, help))
22+
endef
23+
export PRINT_HELP_PYSCRIPT
24+
BROWSER := python -c "$$BROWSER_PYSCRIPT"
25+
26+
help:
27+
@python -c "$$PRINT_HELP_PYSCRIPT" < $(MAKEFILE_LIST)
28+
29+
clean: clean-build clean-pyc clean-test ## remove all build, test, coverage and Python artifacts
30+
31+
32+
clean-build: ## remove build artifacts
33+
rm -fr build/
34+
rm -fr dist/
35+
rm -fr .eggs/
36+
find . -name '*.egg-info' -exec rm -fr {} +
37+
find . -name '*.egg' -exec rm -f {} +
38+
39+
clean-pyc: ## remove Python file artifacts
40+
find . -name '*.pyc' -exec rm -f {} +
41+
find . -name '*.pyo' -exec rm -f {} +
42+
find . -name '*~' -exec rm -f {} +
43+
find . -name '__pycache__' -exec rm -fr {} +
44+
45+
clean-test: ## remove test and coverage artifacts
46+
rm -fr .tox/
47+
rm -f .coverage
48+
rm -fr htmlcov/
49+
50+
lint: ## check style with flake8
51+
flake8 learnregex tests
52+
53+
test: ## run tests quickly with the default Python
54+
55+
python setup.py test
56+
57+
test-all: ## run tests on every Python version with tox
58+
tox
59+
60+
coverage: ## check code coverage quickly with the default Python
61+
62+
coverage run --source learnregex setup.py test
63+
64+
coverage report -m
65+
coverage html
66+
$(BROWSER) htmlcov/index.html
67+
68+
docs: ## generate Sphinx HTML documentation, including API docs
69+
rm -f docs/learnregex.rst
70+
rm -f docs/modules.rst
71+
sphinx-apidoc -o docs/ learnregex
72+
$(MAKE) -C docs clean
73+
$(MAKE) -C docs html
74+
$(BROWSER) docs/_build/html/index.html
75+
76+
servedocs: docs ## compile the docs watching for changes
77+
watchmedo shell-command -p '*.rst' -c '$(MAKE) -C docs html' -R -D .
78+
79+
release: clean ## package and upload a release
80+
python setup.py sdist upload
81+
python setup.py bdist_wheel upload
82+
83+
dist: clean ## builds source and wheel package
84+
python setup.py sdist
85+
python setup.py bdist_wheel
86+
ls -l dist
87+
88+
install: clean ## install the package to the active Python's site-packages
89+
python setup.py install

README.rst

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
===============================
2+
learnregex
3+
===============================
4+
5+
6+
.. image:: https://img.shields.io/pypi/v/learnregex.svg
7+
:target: https://pypi.python.org/pypi/learnregex
8+
9+
.. image:: https://img.shields.io/travis/lufte/learnregex.svg
10+
:target: https://travis-ci.org/lufte/learnregex
11+
12+
.. image:: https://readthedocs.org/projects/learnregex/badge/?version=latest
13+
:target: https://learnregex.readthedocs.io/en/latest/?badge=latest
14+
:alt: Documentation Status
15+
16+
.. image:: https://pyup.io/repos/github/lufte/learnregex/shield.svg
17+
:target: https://pyup.io/repos/github/lufte/learnregex/
18+
:alt: Updates
19+
20+
21+
A pyschool story for learning regular expressions.
22+
23+
24+
* Free software: MIT license
25+
* Documentation: https://learnregex.readthedocs.io.
26+
27+
28+
Features
29+
--------
30+
31+
* TODO
32+
33+
Credits
34+
---------
35+
36+
This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.
37+
38+
.. _Cookiecutter: https://github.com/audreyr/cookiecutter
39+
.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage
40+

learnregex/__init__.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# -*- coding: utf-8 -*-
2+
3+
__author__ = """Sophilabs"""
4+
__email__ = '[email protected]'
5+
__version__ = '0.1.0'

learnregex/data.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import gettext
2+
import os
3+
4+
domain = 'learnregex'
5+
localedir = os.path.join(os.path.dirname(__file__), 'locale/')
6+
gettext.bindtextdomain(domain, localedir)
7+
translation = gettext.translation(domain, localedir, fallback=True)
8+
9+
10+
def _(msg):
11+
return gettext.dgettext(domain, msg)

learnregex/story.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
from story.story import BaseStory
2+
3+
from . import introduction
4+
from .data import _
5+
6+
7+
class Story(BaseStory):
8+
9+
name = 'learnregex'
10+
title = _('Learn regular expressions with Python.')
11+
adventures = [
12+
introduction
13+
]

requirements_dev.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
pip==8.1.2
2+
bumpversion==0.5.3
3+
wheel==0.29.0
4+
watchdog==0.8.3
5+
flake8==2.6.0
6+
tox==2.3.1
7+
coverage==4.1
8+
Sphinx==1.4.8
9+
10+

0 commit comments

Comments
 (0)