# 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).