Are you a python developer who also/only uses windows and are sick and tired of constantly deteting those pesky __pycache__ directories? Fear not, frenchmaid is here to help! frenchmaid is a CLI app written in pure python that will search your entire project directory and delete any __pycache__ or other folders (and the files within) in your root directory. Now it can also add these folders to your ignore files!
Supported Folders
- __pycache__
- .mypy_cache
Supported Ignores
- git
- docker
pip install frenchmaid
or
pip3 install frenchmaid
Windows 10 PATH Error
If you encounter a path error on your CMD after running one of the commands above (e.g one about not finding a frenchmaid.exe or the frenchmaid.exe not being on PATH), carry out the following steps:
-
Uninstall frenchmaid
pip uninstall frenchmaid -
Open a new terminal as admin
- Open the start menu (press the windows button)
- Search for CMD
- Right click and select run as administrator
-
Install frenchmaid globally
pip install frenchmaid
Remember not to use the --user flag unless you have set this option on path as well.
Linux PATH Error
If you encounter a "not on path" error after running `pip3 install frenchmaid` akin to:
frenchmaid is installed in /home/<username>/.local/bin which is not on PATH...
Copy the relative path to frenchmaid from $HOME and add it to PATH. For this current example it would be:
user@machine:~$ echo $HOME
/home/<username>
user@machine:~$ export PATH="$HOME/.local/bin:$PATH"
pip install --upgrade frenchmaid
or
pip3 install --upgrade frenchmaid
In any terminal window:
Linux based machines:
user@machine:~/Documents/example-app$ frenchmaid clean
Windows based machines:
C:\Users\<user>\Documents\example-app> frenchmaid clean
It's really that simple, just ensure that you are in your project's root directory! For clarity, the above example assumes that your project structure is something like this for example:
example-app
├── LICENSE
├── requirements.txt
└── src
└── __init__.py
└── app.py
If the root is example-app then you can see that the terminal should be in that dir.
Run frenchmaid clean in your project's root directory without any arguments to remove all instances of supported folders. If you want to delete all instances of one type of folder and not any others, run the command with an option; For example, frenchmaid clean mypy.
For more information on which arguments are supported, run frenchmaid clean --help. If a folder you would like support for is not there, you can open a request here.
The currently supported arguments are:
pycachewhich will only delete __pycache__ foldersmypywhich will only delete .mypy_cache folders
The ignore command (unlike the clean one) requires an argument to work. So to ignore all supported folders in your .dockerignore file, run frenchmaid ignore docker for example.
Usage Notes
- Ensure you run the command in the correct directory
- It will currently only add pycache and mypy cache folders toy our ignore file
- You do not have to create the ignore file before running the command. If one doesn't exist, it will create one
- If you already have an ignore file, it will append the folders to the file if they aren't already in the file
The currently supported arguments are:
gitwhich will add or append a .gitignore filedockerwhich will add or append a .dockerignore file
For more information on which arguments are supported, run frenchmaid ignore --help. If a folder you would like support for is not there, you can open a request here.
In any terminal in any directory:
frenchmaid -v
or
frenchmaid --version
will return (for example):
frenchmaid v0.2.3
In any terminal in any directory:
frenchmaid --help
will return:
Usage: frenchmaid [OPTIONS] COMMAND [ARGS]...
A handy tool to delete all junk!
Options:
-v, --version View the CLI app version
--install-completion Install completion for the current shell.
--show-completion Show completion for the current shell, to copy it or customize the installation.
--help Show this message and exit.
Commands:
clean Delete all instances of junk folders
ignore Add junk folders to ignore files
Note that this option can also be used in tandem with any command.
You can report any bugs or improvements here, I will try to address them as soon as possible. Feel free to suggest any other files or folders you think it should delete (e.g .pytest_cache) with all context on how they appear. I will happily make it a possibility without breaking the current format! To the best of my abilities of course, and the github page will be updated on any changes.
v0.2.3
- Codebase improvements
- Full parity between
windowsandlinuxsystems; Full Stability - Added .gitignore
- README structure changed
- Note added to v0.2.0 to denote it's instability
v0.2.2
- Updated README version history to include v0.2.1 updates
v0.2.1
- Fixed ignore format for pycache in git
v0.2.0
- Added a logo to the README
- Added instructions for a Linux PATH error
- Added ignore command and arguments
- Added support for mypy cache folders
- Added arguments to the clean command
- Added
--helpcontext to all commands - Moved all functions to a modules folder
- Added a class switch
- Typed modules
- Unstable on linux bases systems
v0.1.2
- License has been updated to Apache from MIT effective from the date of this release
- Notes on potential path problems that can arise from installation on Windows have been added to the README
v0.1.1
- Issue on linux machines fixed with directory name post pycache delete
- The package no longer displays the root directory's full absolute path (e.g Documents/example-app), but rather just the root directory's name (e.g example-app) on linux machines.
v0.1.0
- Initial Release; Stable version for use on all platforms
