Table of Contents
Python
“Eventually I got better – I started making my own mistakes.”
Fun reason to learn Python:-
https://www.4dbrix.com/documentation/python/
Python Game:-
https://www.twilio.com/quest
Rather more serious tutorial:-
https://docs.python.org/3/tutorial/
Install pip3
# apt-cache search python3-pip python3-pip - Python package installer root@sysmgmt:~# apt-get install python3-pip Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: binutils binutils-common binutils-x86-64-linux-gnu b ...edited...
Data Structures
Python Code
Print Formatting
>>> print ("this is a {LENGTH} {STRING} print").format(LENGTH='short', STRING='test') this is a short test print >>> print("Creating '{}' role in account '{}'".format(role_name, event["account_id"]))
Date Time
from datetime import datetime print("now", datetime.now().replace(microsecond=0)) now 2023-09-12 12:44:22
With format string:-
from datetime import datetime raw_time = datetime.now().replace(microsecond=0) now = raw_time.strftime("%d/%m/%Y %H:%M:%S")
Gives:- “04/10/2023 16:37:43”
Virtual Environment
python3 -m venv <venv name> eg. $ python3 -m venv stuff-env # EACH time you will need to run this to avtivate the virtual env:- $ source stuff-env/bin/activate (stuff-env) $
pip freeze
shows current modules, so echo this to requirements.txt
to automatically load modules
pip freeze > requirements.txt
To quit the venv, use deactivate
command (which venv adds to your path)
$ deactivate $
requirements.txt file
Specific versions of packages can be installed from a requirements.txt
file, this avoids pip installing a module in a venv which is a later release than the code was written for:-
$ cat requirements.txt Jinja2==2.11.2 PyYAML==3.13 SQLAlchemy==1.3.16
$ pip install -r requirements.txt
Comments
json.dumps
print(json.dumps(clusterinfo))
produced the following error because of 'LastModified': datetime.datetime(2021, 8, 10, 12, 59, 25, tzinfo=tzutc()):-
TypeError: Object of type datetime is not JSON serializable
Serialization is the process of converting the state of an object, that is, the values of its properties, into a form that can be stored or transmitted.
Solution is to apply a default convert to str for anything unknown. But this will create an issue getting date.time string back to a date,time type obect.
print(json.dumps(clusterinfo, indent=4, sort_keys=True, default=str))