-
Notifications
You must be signed in to change notification settings - Fork 605
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Simplified Installation Instructions with Pipenv #110
Changes from all commits
a8ea351
dcfb0d8
ec63059
4e2c197
6777d26
a38305d
4cbded2
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
# Byte-compiled / optimized / DLL files | ||
__pycache__/ | ||
*.py[cod] | ||
*$py.class | ||
|
||
# C extensions | ||
*.so | ||
|
||
# Distribution / packaging | ||
.Python | ||
build/ | ||
develop-eggs/ | ||
dist/ | ||
downloads/ | ||
eggs/ | ||
.eggs/ | ||
lib/ | ||
lib64/ | ||
parts/ | ||
sdist/ | ||
var/ | ||
wheels/ | ||
*.egg-info/ | ||
.installed.cfg | ||
*.egg | ||
MANIFEST | ||
|
||
# PyInstaller | ||
# Usually these files are written by a python script from a template | ||
# before PyInstaller builds the exe, so as to inject date/other infos into it. | ||
*.manifest | ||
*.spec | ||
|
||
# Installer logs | ||
pip-log.txt | ||
pip-delete-this-directory.txt | ||
|
||
# Unit test / coverage reports | ||
htmlcov/ | ||
.tox/ | ||
.coverage | ||
.coverage.* | ||
.cache | ||
nosetests.xml | ||
coverage.xml | ||
*.cover | ||
.hypothesis/ | ||
.pytest_cache/ | ||
|
||
# Translations | ||
*.mo | ||
*.pot | ||
|
||
# Django stuff: | ||
*.log | ||
local_settings.py | ||
db.sqlite3 | ||
|
||
# Flask stuff: | ||
instance/ | ||
.webassets-cache | ||
|
||
# Scrapy stuff: | ||
.scrapy | ||
|
||
# Sphinx documentation | ||
docs/_build/ | ||
|
||
# PyBuilder | ||
target/ | ||
|
||
# Jupyter Notebook | ||
.ipynb_checkpoints | ||
|
||
# pyenv | ||
.python-version | ||
|
||
# celery beat schedule file | ||
celerybeat-schedule | ||
|
||
# SageMath parsed files | ||
*.sage.py | ||
|
||
# Environments | ||
.env | ||
.venv | ||
env/ | ||
venv/ | ||
ENV/ | ||
env.bak/ | ||
venv.bak/ | ||
|
||
# Spyder project settings | ||
.spyderproject | ||
.spyproject | ||
|
||
# Rope project settings | ||
.ropeproject | ||
|
||
# mkdocs documentation | ||
/site | ||
|
||
# mypy | ||
.mypy_cache/ | ||
|
||
# OS generated | ||
.DS_Store |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# Contributing Guide | ||
|
||
## Environment Setup | ||
|
||
TabPy suggests using [Pipenv](https://docs.pipenv.org) to configure and manage your development environment and provides facilities to enable this out of the box. To start, clone the source code and from the project root run: | ||
|
||
```sh | ||
pipenv install --dev | ||
``` | ||
|
||
This will create a dedicated virtual environment containing all of the required packages. | ||
|
||
## Starting the Server | ||
|
||
From the project root, activate the virtual environment you created above via: | ||
|
||
```sh | ||
pipenv shell | ||
``` | ||
|
||
Thereafter, simply navigate to tabpy-server/tabpy-server and run: | ||
|
||
```sh | ||
python tabpy.py | ||
``` |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
[[source]] | ||
url = "https://pypi.org/simple" | ||
verify_ssl = true | ||
name = "pypi" | ||
|
||
[packages] | ||
future = "*" | ||
futures = "==3.1.1" | ||
requests = "*" | ||
simplejson = "*" | ||
tornado-json = "*" | ||
tornado = "*" | ||
cloudpickle = "*" | ||
decorator = "*" | ||
python-dateutil = "*" | ||
genson = "*" | ||
jsonschema = "*" | ||
"809dc83" = {path = "./tabpy-client", edtiable = true} | ||
numpy = "*" | ||
|
||
[dev-packages] | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. One potential weakness here is that Pipenv doesn't support specifying multiple Python versions: If someone is trying to develop on a non-supported Python version this wouldn't stop them from doing so, but as far as distributions are concerned you'd be guarding against that in the |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typically wouldn't pin this requirement, but it is a bug in Pipenv:
pypa/pipenv#1586
Not sure what the roadmap to support Py27 is so may not be a long term issue, but worth calling out
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have you considered baselining with pyenv with the pyenv-virtualenv plugin? This would accommodate a simplified install story as well as be a sole route to document running on all supported python versions?
I've got a Dockerfile working that builds a running container that is likely useful to the project. I'd contribute that; I'd just need to tweak some minor modifications and likely switch to an alpine base image instead of the custom internal one I use now. I have this with Supervisor managing the processes. I was considering have it fronted with an Nginx proxy; that could be added to the example container or a single container of it's own to complete that story. For simplicity and 'access' to new users, the former would be more simple I'd imagine. Finally i'm fixing some "problems" with tabby.py startup that I found needed to be simplified that should be generally useful. I'll look further on Tableau's site or in the project for contributing and so on.
How actively is the main branch being maintained? 1 of your merges took a month and that looks only to mainly be pep8 cleanups......
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have not but at the same time I've never used that plug in. My reasoning for choosing pipenv was that it gives you both the virtual environment and package management all in one, and given the talk on it at PyCon this year I think its going to be well engrained in the future of the language. If you think this is better done with pyenv-virtualenv however you could always submit a PR to see what the team prefers :-)
I am not associated with Tableau in any way and therefore am not qualified to speak on the maintenance aspect, but I have gotten feedback on issues and PRs submitted so far