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/

Flask application framework

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 ("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))
 
python/python.txt · Last modified: 04/10/2023 16:40 by andrew