Basic infrastructure for writing scripts
Project description
Python is an excellent language that makes writing scripts very straightforward. Over the course of writing many scripts, we realized that we were doing some things over and over like creating a logger and accepting command line arguments. Base script is a very simple abstraction that takes care of setting up logging and other basics so you can focus on your application specific logic.
Here are some facilities that Base Script offers: - Logging - Accepting command-line arguments using argparse
Installation
pip install basescript
Usage
Here is a simple example to get started
Hello World
helloworld.py
from basescript import BaseScript
class HelloWorld(BaseScript):
def run(self):
print "Hello world"
if __name__ == '__main__':
HelloWorld().start()
NOTE: all examples showcased here are available under the
``examples`` directory
Run the above by doing:
python helloworld.py run
Run script with log level set to DEBUG
python helloworld.py --log-level DEBUG run
Run script with custom log file
python helloworld.py --log-level DEBUG --log mylog run
Command line args, Using the logger
The following is a more involved example
adder.py
from basescript import BaseScript
class Adder(BaseScript):
# The following specifies the script description so that it be used
# as a part of the usage doc when --help option is used during running.
DESC = 'Adds numbers'
def __init__(self):
super(Adder, self).__init__()
self.a = 10
self.b = 20
def define_args(self, parser):
parser.add_argument('c', type=int, help='Number to add')
def run(self):
self.log.info("Starting run of script ...")
print self.a + self.b + self.args.c
self.log.info("Script is done")
if __name__ == '__main__':
Adder().start()
Run the script as follows and observe the usage information shown. Note how the description appears along with the c argument.
python adder.py --help
usage: adder.py [-h] [--name NAME] [--log LOG] [--log-level LOG_LEVEL]
[--quiet]
{run} ...
Adds numbers
optional arguments:
-h, --help show this help message and exit
--name NAME Name to identify this instance
--log LOG Name of log file
--log-level LOG_LEVEL
Logging level as picked from the logging module
--quiet
commands:
{run}
python adder.py run --help
usage: adder.py run [-h] c
positional arguments:
c Number to add
optional arguments:
-h, --help show this help message and exit
Run the script now to see the intended output
python adder.py run 30
60
Run the same with info and higher level logs enabled
python adder.py --log-level INFO 30
2016-04-10 13:48:27,356 INFO Starting run of script ...
60
2016-04-10 13:48:27,356 INFO Script is done
--log-level accepts all the values shown at https://docs.python.org/2/library/logging.html#logging-levels.
log is a log object created using python’s standard logging module. You can read more about it at https://docs.python.org/2/library/logging.html.
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 basescript-0.1.16.tar.gz
.
File metadata
- Download URL: basescript-0.1.16.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9b597ce9d8cd9cefde56a64c17cb8c1a91b323eeef1cd032e78021453ab3a64f |
|
MD5 | d89532e1daf33579c0add310b97444f9 |
|
BLAKE2b-256 | 214bd28e75ac418d77a2bd17227ffe879bb354fbb5408f7b6531febe860c97dc |
File details
Details for the file basescript-0.1.16-py2-none-any.whl
.
File metadata
- Download URL: basescript-0.1.16-py2-none-any.whl
- Upload date:
- Size: 11.2 kB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 35f46bde4395e79caf3ff6db7cc59b947f8db82979718da80c0bdb1437788033 |
|
MD5 | 54c374488698c617f83dda6d7b1a4efa |
|
BLAKE2b-256 | b58dc6dd91e233dc38f81d6daa480a75e3cf4a284be06966164ff4b7426341b3 |