# testpython
This is just a test project. You can do anything here, test python
and IDE projects.
This branch is of Python 3 code. There's a python2 branch too.
## Getting the project
You can get a copy of this project by clicking on the
[ZIP](https://git.dlma.com/testpython.git/zipball/main)
or [TAR](https://git.dlma.com/testpython.git/tarball/main) buttons
near the top right of the GitList web page.
You can clone from the origin with:
git clone ssh://USERNAME@dlma.com/~/git/testpython.git
## Supported IDEs
This project has example Visual Studio Code, PyCharm, Atom, and
Sublime Text 3 projects.
### tmux vim entr
The best IDE of all, for those who live on the CLI. Create two panes in tmux,
run vim in one, and run entr in the other with a command like:
git ls-files | entr -c sh -c 'ctags -R *; ./testpython.py'
or
find . -type f -name \*.py | entr -c sh -c 'ctags -R *; ./testpython.py'
or to run in pdb:
git ls-files | entr -c sh -c 'ctags -R *; python3 -m pdb testpython.py'
Tip: In vim you can do a multi-file grep and use the QuickFix window with commands like...
:grep -rI searchterm .
:cw
See [this QuickFix tip for sorting results by filename](https://git.dlma.com/dotfiles.git/commit/0cb566c53caf931c8b3f423dcfded4660b220cbb).
### Visual Studio Code
Download Microsoft's Visual Studio Code from
[code.visualstudio.com](https://code.visualstudio.com/). Code uses the
[testpython.code-workspace](/testpython.git/blob/main/testpython.code-workspace)
project file. I prefer this to GitHub's Atom. Both are based on GitHub's Electron.
### PyCharm
PyCharm uses the [.idea](/testpython.git/tree/main/.idea/) directory. JetBrains suggests [sharing the .idea directory
except for workspace.xml and tasks.xml](https://intellij-support.jetbrains.com/hc/en-us/articles/206544839).
### Sublime Text 3
[Sublime](https://www.sublimetext.com/) uses the
[testpython.sublime-project](/testpython.git/blob/main/testpython.sublime-project) file.
### GitHub's Atom
Download from [atom.io](https://atom.io/). These are useful modules:
* [read-only-indicator](https://atom.io/packages/read-only-indicator) by alefragnani. (Feature not available in Sublime Text 3.)
* [script](https://atom.io/packages/script) by rgbkrk, for running scripts.
* [project-manager](https://atom.io/packages/project-manager) by danielbrodin.
If you install project-manager, it looks for [a local "project.cson" file](/testpython.git/blob/main/project.cson), and
merges those settings with what is in the .atom `projects.cson` file.
## Requirements
requirements.txt specifies the requirements for Python modules and apps.
Install the requirements with:
python3 -m pip install -r requirements.txt
### Generating requirements.txt
Ideally, track why modules are required, create requirements.in with only the
the top-level requirements, and let pip-compile (from pip-tools) figure out the
next-level dependencies.
(venv) $ python3 -m pip install pip-tools
(venv) $ pip-compile requirements.in
Otherwise, you can make requirements.txt directly with pip freeze:
(venv) $ python3 -m pip freeze > requirements.txt
## Current Features
* Multiple directories for testing build systems and IDEs
## Is it any good?
[Yes](https://news.ycombinator.com/item?id=3067434).