16th Week of 2021
Projects⚑
- Improvement: Add woop awesome quantified self resources to the research list.
- New: Add project to migrate software bug tracker to a vendor free one like
git-bug
. -
New: Improve the notification management in Linux.
Create new seed project to be able to group and silence the notifications under a custom logic. For example:
- If I want to focus on a task, only show the most important ones.
- Only show alerts once every X minutes. Or define that I want to receive them the first 10 minutes of every hour.
- If I'm not working, silence all work alerts.
-
New: Improve the hard drive monitor system.
Create new seed project to use something like scrutiny (there's a linuxserver image) to collect and display the information. For alerts, use one of their supported providers.
-
New: Aggregate all notifications.
Instead of reading the email, github, gitlab, discourse, reddit notifications, aggregate all in one place and show them to the user in a nice command line interface.
For the aggregator server, my first choice would be gotify.
- New: Add seedling project to create factoryboy factories from pydantic models automatically.
DevOps⚑
Continuous Integration⚑
Flakehell⚑
-
Correction: Update the git repository.
The existent repository has been archived in favor of this one
-
New: Explain how to patch the extended_default_ignore error for versions > 3.9.0.
Add to your your
pyproject.toml
:[tool.flakeheaven] extended_default_ignore=[] # add this
Coding⚑
Python⚑
-
New: Add apprise to the interesting libraries to explore.
apprise: Allows you to send a notification to almost all of the most popular notification services available to us today such as: Linux, Telegram, Discord, Slack, Amazon SNS, Gotify, etc. Look at all the supported notifications
(¬º-°)¬
. -
New: Add kivi and kivimd to the interesting libraries to explore.
kivi is used to create android/Linux/iOS/Windows applications with python. Use it with kivimd to make it beautiful, check the examples and the docs.
Boto3⚑
-
New: Introduce the AWS SDK library and explain how to test it.
Boto3 is the AWS SDK for Python to create, configure, and manage AWS services, such as Amazon Elastic Compute Cloud (Amazon EC2) and Amazon Simple Storage Service (Amazon S3). The SDK provides an object-oriented API as well as low-level access to AWS services.
For testing, try to use moto, using the Botocore's stubber as fallback option.
-
New: Explain how to test ec2, route53, s3, and rds resources.
- New: Explain how to test vpc and auto scaling group resources.
-
Improvement: Explain how to extract the instance when testing autoscaling groups.
Also track the issue to add support to launch templates.
Logging⚑
-
New: Explain how to log python program exceptions better than to a file.
Using
logging
to write write exceptions and breadcrumbs to a file might not be the best solution because unless you look at it directly most errors will pass unnoticed.To actively monitor and react to code exceptions use an application monitoring platform like sentry.
In the article I explain what are the advantages of using this solution and do a comparison between Sentry and GlitchTip.
DeepDiff⚑
-
Improvement: Remove advice to use my fork instead.
The original one has already merged my PR
\\ ٩( ᐛ )و //
. Beware though as theregexp
are not enabled by default (against my will). You need to use theuse_regexp=True
as an argument togrep
orDeepSearch
.
FactoryBoy⚑
Faker⚑
-
New: Explain how to create
Optional
data.faker-optional
is a custom faker provider that acts as a wrapper over other Faker providers to return their value orNone
. Useful to create data of typeOptional[Any]
.
FastAPI⚑
- New: Explain how to log exceptions to sentry.
-
New: Explain how to send raw data to the client.
With the
Response
object. - New: Explain how to inject a testing configuration in the tests.
Python Snippets⚑
-
Correction: Add warning about the method to use direct dependencies.
Last time I used this solution, when I added the library on a
setup.py
the direct dependencies weren't installed :S
Pydantic⚑
-
New: Explain how to update entity attributes with a dictionary.
You can create a new object with the new data using the
update
argument of thecopy
entity method.
rich⚑
-
New: Introduce the python cli builder library and it's progress bar.
Rich is a Python library for rich text and beautiful formatting in the terminal.
Check out the beautiful progress bar:
pip install rich python -m rich.progress
Ruamel YAML⚑
-
Improvement: Suggest to use ruyaml instead of ruamel.yaml.
As it's maintained by the community and versioned with git.
Arts⚑
Writing⚑
-
New: Explain when to use I'm good or I'm well.
Use I'm well when referring to being ill, use I'm good for the rest.
Other⚑
-
New: Explain how to select a random choice from
Enum
objects.pydantic uses
Enum
objects to define the choices of fields, so we need them to create the factories of those objects. -
New: Improve the periodic tasks and application metrics monitoring.
Setup an healthchecks instance with the linuxserver image to monitor cronjobs.
For the notifications either use the prometheus metrics or an apprise compatible system.