An extension of argparse with history tracking
Project description
argparse-history
Why Track Command History?
Have you ever found yourself wondering:
- "What parameters did I use for that successful run last week?"
- "How can I replicate the exact configuration from my previous experiments?"
- "Is there an easy way to audit how my script has been used over time?"
- "How can I track my program's performance changes depending on its parameters?"
argparse-history
is here to solve these problems and more!
What is argparse-history
?
argparse_h.ArgumentParser
is an extension of Python's built-in argparse.ArgumentParser
that automatically tracks and stores the command-line arguments used in your scripts. It's designed to be a drop-in replacement for ArgumentParser, adding powerful history tracking capabilities with minimal changes to your existing code.
Key Features
- 📜 Automatic command history tracking
- 🕰️ Timestamped entries for easy reference
- 🔍 Built-in history viewing functionality
- 🔍 Tracking execution statistics, or any other relevant data depending on the arguments
- 📁 Customizable history file location
- 🔌 Seamless integration with existing argparse code
Installation
Install argparse-history
with pip:
pip install argparse_history
Quick Start
Replace your existing ArgumentParser
with argparse_h.ArgumentParser
:
from argparse_h import ArgumentParser
parser = ArgumentParser(description="Your script description")
parser.add_argument('--input', help='Input file', required=True)
parser.add_argument('--output', help='Output file', required=True)
args = parser.parse_args()
# Your script logic here
That's it! Your script now tracks command history automatically.
Viewing Command History
To view the command history, simply run your script with the --show-history flag:
python your_script.py --show-history
This will display a list of previous runs with their timestamps and arguments.
python your_script.py --show-stats
In addition to the arguments history this will display any data saved during program runs.
Customizing History File Location
By default, the history is stored in the current directory. You can specify a custom directory:
python your_script.py --input in.txt --output out.txt --history-dir /path/to/history
Adding your script performance statistics
from argparse_h import ArgumentParser
class MyProcessorClass:
# your class methods....
def process(self):
# Perform operations
# .....
self.execution_data = {'n_procs': n_procs, 'cpu time': cpu_time, 'elapsed time': elapsed_time}
# ......
if __name__ == '__main__':
# .....
parser = ArgumentParser(...)
# ....
processor = MyProcessorClass(...)
processor.process()
# ....
parser.add_data(processor.execution_data)
Why Choose argparse_h?
- Effortless Integration: Minimal changes to your existing code.
- Improved Reproducibility: Easily recreate previous runs.
- Better Debugging: Quickly identify what parameters were used in past executions.
- Audit Trail: Keep track of how and when your script is being used.
- Execution statistics: keep track of your script performance, or any other relevant data, depending on its parameters.
- Time-Saving: No more manual logging of script parameters.
Contributing
Your contributions are welcome! Please feel free to share if you use argparse_history
and how it is useful to you.
Also let me know if you have any suggestions of how it could serve you even better!
License
This project is licensed under the MIT License - see the LICENSE file for details. Start tracking your command history today with argparse_h!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file argparse_history-0.1.2.tar.gz
.
File metadata
- Download URL: argparse_history-0.1.2.tar.gz
- Upload date:
- Size: 4.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | accfc0b6914956a89b9b36330b4220dc5f48317f59d5080c0aa08f3fdc14d83b |
|
MD5 | acb5cd95862426bfd4ea910644938d9a |
|
BLAKE2b-256 | 008f257595a9b31ebf94336b2b05ddd7f125e3df2b113a83be53157aae0c7462 |
File details
Details for the file argparse_history-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: argparse_history-0.1.2-py3-none-any.whl
- Upload date:
- Size: 5.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0025bf839dcbbf4df7373a4802330e0f5a0759ea5cbd5f89cbf8eaf6124eb5b5 |
|
MD5 | 39811455e4e099e686c5f365c08b3ad3 |
|
BLAKE2b-256 | 8c5991038e035f25645fded9ddcb85388ff6bbd96e8ac36262b6a4bf197e9596 |