Identify unwanted function calls in your code
Project description
Pyaphid
Description
Pyaphid is a static analysis tool for detecting unwanted function calls in Python code.
Installation and usage
Installation: pip install pyaphid
Usage: python -m pyaphid <files and/or directories to analyze>
or pyaphid <files and/or directories to analyze>
Configuration
Forbidden function calls can be configured via the pyproject.toml
:
[tool.pyaphid]
forbidden = [
"print", # forbid print(...)
"pdb.run", # forbid pdb.run(...)
"werkzeug.debug.*", # forbid werkzeug.debug.DebuggedApplication(...), werkzeug.debug.get_machine_id(...), ...
"datetime.datetime.now" # forbid datetime.now()
]
With datetime.now for example you usually want to ignore one call to it for implementing a project-wide default function. You can use # pyaphid: ignore
to ignore a line:
from dateutil.tz import tzlocal
from datetime import datetime
def get_now():
# allowed
return datetime.now(tzlocal()) # pyaphid: ignore
datetime.now() # forbidden
CLI Options
- -n / --names:
Look-up all func calls and print their identifier
As a pre-commit hook
- repo: https://github.com/jvllmr/pyaphid
rev: v0.2.0
hooks:
- id: pyaphid
Limitations
# Pyaphid cannot work with star imports
from os.path import *
dirname(".") # undetected
# Pyaphid ignores relative imports
from . import something
something() # undetected
# Pyaphid doesn't track assignments
my_print = print
my_print("Hello world") # undetected
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyaphid-0.2.0.tar.gz
(7.0 kB
view details)
Built Distribution
File details
Details for the file pyaphid-0.2.0.tar.gz
.
File metadata
- Download URL: pyaphid-0.2.0.tar.gz
- Upload date:
- Size: 7.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45ce8a0c5201d91405963733597ef4ae4c0774f31c885c89838064a9391ad02d |
|
MD5 | 298919ddef1aec97212ecf79bd231bb6 |
|
BLAKE2b-256 | 0ddb0f5f90c207e55984bcb74618d031c0eb5a234729eb1b4d176008b908f643 |
File details
Details for the file pyaphid-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: pyaphid-0.2.0-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4bab0dc7fad6b4c44f4cf4637c982913439f30a48d7383622378a3b0235f1971 |
|
MD5 | 07224934a44a4ffa75aefae10c2ad7f6 |
|
BLAKE2b-256 | b3fc1b59d8e6a2220c4e64eeb7f13b261a6ecab487724e1bb35a83fc1073023e |