- PEP 8, when sensible.
- Conventions and configuration.
- TextBlob wraps functionality in NLTK and pattern.en. Anything outside of that should be written as an extension.
- Test ruthlessly. Write docs for new features.
- Even more important than Test-Driven Development--Human-Driven Development.
- These guidelines may--and probably will--change.
. . .should all be reported on the Github Issue Tracker .
Fork TextBlob on Github. :
$ git clone https://github.com/sloria/TextBlob.git $ cd TextBlob
Install development requirements. It is highly recommended that you use a virtualenv. :
# After activating your virtualenv $ pip install -r dev-requirements.txt
Install TextBlob in develop mode. :
$ python setup.py develop
Extensions are packages with the name textblob-something
, where "something" is the name of your extension. Extensions should be imported with import textblob_something
.
To create a new extension for a part-of-speech tagger, sentiment analyzer, noun phrase extractor, classifier, tokenizer, or parser, simply create a module that has a class that implements the correct interface from textblob.base
. For example, a tagger might look like this:
from textblob.base import BaseTagger
class MyTagger(BaseTagger):
def tag(self, text):
pass
# Your implementation goes here
The process for developing language extensions is the same as developing model extensions. Create your part-of-speech taggers, tokenizers, parsers, etc. in the language of your choice. Packages should be named textblob-xx
where "xx" is the two- or three-letter language code (Language code reference).
To see examples of existing extensions, visit the Extensions <extensions>
page.
Check out the API reference <api_base_classes>
for more info on the model interfaces.
TextBlob loosely follows Vincent Driessen's Successful Git Branching Model . In practice, the following branch conventions are used:
dev
The next release branch.
master
Current production release on PyPI.
1. Create a new local branch. :
$ git checkout -b name-of-feature
2. Commit your changes. Write good commit messages. :
$ git commit -m "Detailed commit message"
$ git push origin name-of-feature
- Before submitting a pull request, check the following:
- If the pull request adds functionality, it is tested and the docs are updated.
- If you've developed an extension, it is on the
Extensions List <extensions>
. - You've added yourself to
AUTHORS.rst
.
- Submit a pull request to the
sloria:dev
branch.
To run all the tests: :
$ pytest
To skip slow tests: :
$ pytest -m 'not slow'
Contributions to the documentation are welcome. Documentation is written in reStructuredText (rST). A quick rST reference can be found here. Builds are powered by Sphinx.
To build docs and run in watch mode: :
$ tox -e watch-docs