PythonQuickies: Difference between revisions
Jump to navigation
Jump to search
(Created page with "Category:Python = buffering = Fix CLI buffering in Python with: <pre> $ python -u foo.py | tee mylog.log </pre> "-u" means unbuffered, or something = Decorators = <syntaxhighlight lang="python" line> def my_decorator(func): def wrapper(*args, **kwargs): print("Something is happening before the function is called.") func(*args, **kwargs) print("Something is happening after the function is called.") return wrapper @my_decorator def sa...") |
|||
Line 136: | Line 136: | ||
car = Car("Honda", "Civic", 4) | car = Car("Honda", "Civic", 4) | ||
car.display() | car.display() | ||
</syntaxhighlight> | |||
= Abstract Base Class = | |||
<syntaxhighlight lang="python" line> | |||
from abc import ABC, abstractmethod | |||
from .event import Event | |||
class ThreadEvent(ABC, Event): | |||
""" | |||
A class used to represent a post, comment, or reply in a community. | |||
""" | |||
@abstractmethod | |||
def to_tag(self): | |||
""" | |||
Returns | |||
------- | |||
list | |||
contains one element which is this event's own tag | |||
""" | |||
pass | |||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 16:31, 10 November 2023
buffering
Fix CLI buffering in Python with:
$ python -u foo.py | tee mylog.log
"-u" means unbuffered, or something
Decorators
def my_decorator(func):
def wrapper(*args, **kwargs):
print("Something is happening before the function is called.")
func(*args, **kwargs)
print("Something is happening after the function is called.")
return wrapper
@my_decorator
def say_hello():
print("Hello!")
say_hello()
Virtual Environments
# Check Python version
python3 --version
# Check pip version
pip3 --version
# Install virtualenv
pip3 install virtualenv
# Install venv
sudo apt install python3-venv
# Navigate to your project directory
cd ~/my_project/
# Create virtual environment
python3 -m venv myenv
# Activate virtual environment
source myenv/bin/activate
# Now you can install packages
pip install <your-package>
# Deactivate when you're done
deactivate
What Libs Have I?
$ pip freeze --local blinker==1.6.2 click==8.1.7 flask==2.3.3 importlib-metadata==6.8.0 itsdangerous==2.1.2 Jinja2==3.1.2 MarkupSafe==2.1.3 werkzeug==2.3.7 zipp==3.16.2
Package Info
Datetime and Timestamp
from datetime import datetime, timezone
import pytz
print("When including time, use one of the following:")
ts = 0
good_dt = pytz.utc.localize(datetime.utcfromtimestamp(ts))
print(f'pytz.utc.localize(datetime.utcfromtimestamp(ts)) = {good_dt}')
ts = 0
good_dt = datetime.fromtimestamp(ts, timezone.utc)
print(f'datetime.fromtimestamp(ts, timezone.utc) = {good_dt}')
dt_with_tz = good_dt
good_ts = int(dt_with_tz.timestamp())
print(f'int(dt_with_tz.timestamp()) = {good_ts}')
now_dt = pytz.utc.localize(datetime.utcnow())
now_ts = int(now_dt.timestamp())
renow_dt = datetime.fromtimestamp(now_ts, timezone.utc)
print()
print(f'now_dt = pytz.utc.localize(datetime.utcnow()) = {now_dt}')
print(f'now_ts = int(now_dt.timestamp()) = {now_ts}')
print(f'now_dt = datetime.fromtimestamp(now_ts, timezone.utc) = {renow_dt}')
now_ts = int(pytz.utc.localize(datetime.utcnow()).timestamp())
print(f'now_ts = int(pytz.utc.localize(datetime.utcnow()).timestamp()) = {now_ts}')
import time
print(f'now_ts = int(time.time()) = {int(time.time())}')
Subclass
# Parent class
class Vehicle:
def __init__(self, brand, model):
self.brand = brand
self.model = model
def display(self):
print(f"This is a {self.brand} {self.model}.")
# Child class
class Car(Vehicle):
def __init__(self, brand, model, doors):
super().__init__(brand, model) # Call the __init__ of the parent class
self.doors = doors
# Overriding the display method of the parent class
def display(self):
super().display() # Call the display method of the parent class
print(f"It has {self.doors} doors.")
# Testing the classes
vehicle = Vehicle("Toyota", "Camry")
vehicle.display()
car = Car("Honda", "Civic", 4)
car.display()
Abstract Base Class
from abc import ABC, abstractmethod
from .event import Event
class ThreadEvent(ABC, Event):
"""
A class used to represent a post, comment, or reply in a community.
"""
@abstractmethod
def to_tag(self):
"""
Returns
-------
list
contains one element which is this event's own tag
"""
pass