Skip to content

Commit 724e141

Browse files
authored
Merge pull request #13 from Python-World/w34
w34 added
2 parents f19f0c2 + bf819d7 commit 724e141

File tree

2 files changed

+231
-0
lines changed

2 files changed

+231
-0
lines changed

doc/newsletters/2023/WEEK_34.md

+230
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,230 @@
1+
2+
# Week 34 - Augest 2023
3+
4+
5+
## 1. 📰 The 'Title()' Method and Its Nuances(Limitations)
6+
7+
The `title()` method is a versatile tool for enhancing text formatting. However, it's essential to recognize its limitations. The title() method isn't just about capitalizing; it also handles special characters and maintains proper casing rules.
8+
9+
10+
Let's explore some insights:
11+
12+
🔍 **Use Case 1: Letters Only**
13+
```python
14+
text = "pycon 2023"
15+
formatted_text = text.title()
16+
print(formatted_text) # Output: Pycon 2023
17+
```
18+
19+
📋 **Use Case 2: Alphanumeric Exploration**
20+
```python
21+
text = "python3.10_release"
22+
formatted_text = text.title()
23+
print(formatted_text) # Output: Python3.10_Release
24+
```
25+
26+
📄 **Use Case 3: Punctuation Perspective**
27+
```python
28+
text = "don't STOP believin'!"
29+
formatted_text = text.title()
30+
print(formatted_text) # Output: Don'T Stop Believin'!
31+
```
32+
33+
34+
## 2. 📚 Run A Python Module Directly With `__main__.py`
35+
36+
The `__main__.py` file empowers you to seamlessly convert your Python module into an executable script, enhancing usability and efficiency.
37+
38+
Have you ever wished to run a Python module directly as if it were a script? The `__main__.py` file holds the key! Let's explore a captivating use case that showcases its remarkable potential:
39+
40+
🔍 **Use Case: Transforming Modules into Scripts**
41+
```
42+
my_module/
43+
|-- __main__.py
44+
|-- helper_functions.py
45+
```
46+
47+
```python
48+
# file : helper_functions.py
49+
50+
def some_function():
51+
return "Python World"
52+
```
53+
54+
Imagine you have a module named `my_module` containing useful functions. By adding the following code to `__main__.py`, you can make your module directly executable:
55+
```python
56+
from helper_functions import *
57+
58+
if __name__ == "__main__":
59+
# Your script logic goes here
60+
result = some_function()
61+
print("Result:", result)
62+
```
63+
64+
Now, executing `python my_module` directly from the command line runs the script within the `__main__.py` file, providing instant access to your module's functionality without additional steps.
65+
66+
67+
## 3. 🔍 Unraveling Dictionary Literals and Constructors
68+
69+
Dictionaries are fundamental for storing and accessing key-value data, and Python's versatility in creating them caters to various scenarios.
70+
71+
Dictionaries are essential data structures in Python, and the methods to create them are fascinating. Let's explore these methods along with some captivating use cases:
72+
73+
🔍 **Use Case 1: Dictionary Literals**
74+
```python
75+
employee = {'name': 'Alice', 'age': 30, 'department': 'HR'}
76+
```
77+
Dictionary literals allow you to create dictionaries directly by listing key-value pairs enclosed in curly braces. Perfect for concise and readable code.
78+
79+
📋 **Use Case 2: Dictionary Constructor**
80+
```python
81+
colors = dict(red='#FF0000', green='#00FF00', blue='#0000FF')
82+
```
83+
The dictionary constructor lets you create dictionaries using the built-in `dict()` function. Ideal for dynamically constructing dictionaries from various sources.
84+
85+
📄 **Use Case 3: Merging Dictionaries**
86+
```python
87+
defaults = {'theme': 'light', 'font_size': 12}
88+
user_preferences = {'font_size': 14, 'language': 'en'}
89+
merged_preferences = {**defaults, **user_preferences}
90+
```
91+
Combine dictionaries effortlessly by unpacking them into a new dictionary. A powerful technique for overriding default values.
92+
93+
🔗 **Use Case 4: Creating Dynamic Dictionaries**
94+
```python
95+
keys = ['a', 'b', 'c']
96+
values = [1, 2, 3]
97+
dynamic_dict = dict(zip(keys, values))
98+
```
99+
Construct dictionaries dynamically by using the `zip()` function to combine lists of keys and values.
100+
101+
102+
**🚀 In a Nutshell:**
103+
104+
Choose dictionary literals for straightforward dictionary creation, and opt for the dictionary constructor when you need more flexibility, such as when dynamically constructing dictionaries or merging multiple dictionaries.
105+
106+
107+
## 4. 🧹 Discovering isort: The Art of Import Arrangement
108+
109+
Import statements – a gateway to the world of functionality. But arranging them can be a challenge. Enter `isort`, the Python package that effortlessly arranges your imports for clarity and readability. Behold how easily you can get started:
110+
111+
1. **Installation of isort** via pip:
112+
113+
```
114+
pip install isort
115+
```
116+
117+
2. **Running isort** on your Python file:
118+
119+
```
120+
isort your_file.py
121+
```
122+
123+
🌟 Witness the transformation as your imports fall into a harmonious order!
124+
125+
🌐 **A Symphony of Imports: Prioritize with Precision**
126+
127+
Picture this: system packages, third-party modules, and local imports, all in symphonic order. `isort` brings this vision to life:
128+
129+
```python
130+
# Before isort
131+
from flask import Flask, render_template
132+
import os, sys
133+
from datetime import datetime, timedelta
134+
from my_local_module import my_function
135+
136+
# After isort
137+
import os
138+
import sys
139+
from datetime import datetime, timedelta
140+
141+
from flask import Flask, render_template
142+
143+
from my_local_module import my_function
144+
```
145+
146+
🧩 **Custom Choreography: Tailoring isort to Your Tunes**
147+
148+
`isort` is not just a one-size-fits-all solution; it dances to your rhythm. Craft your own dance steps with configuration options in `pyproject.toml`:
149+
150+
```toml
151+
# pyproject.toml
152+
[tool.isort]
153+
profile = "black"
154+
line_length = 88
155+
known_third_party = ["flask", "requests"]
156+
```
157+
158+
🔍 **isort in Your Workflow Ensemble: Effortless Integration**
159+
160+
Seamlessly blend `isort` into your development routine. Set it as a pre-commit hook using tools like `pre-commit`. Feel the magic as your imports gracefully align with every commit.
161+
162+
163+
164+
## 5. 🕰️ Master Time with Python's Scheduler!
165+
166+
In the chaotic world of programming, managing tasks at specific intervals is a breeze with Python's built-in `sched` module. Let's jump into a simple example to showcase its power:
167+
168+
```python
169+
import sched
170+
import time
171+
172+
def greet(name):
173+
print(f"Hello, {name}! It's time to shine.")
174+
175+
# Create a scheduler instance
176+
scheduler = sched.scheduler(time.time, time.sleep)
177+
178+
# Schedule the greeting
179+
scheduler.enter(5, 1, greet, ("Python-world",))
180+
181+
# Run the scheduler
182+
scheduler.run()
183+
```
184+
185+
🚀 **Automation at Your Fingertips: Scheduled Tasks**
186+
187+
Python's scheduler isn't limited to just delaying functions. You can schedule tasks at specific times, automate backups, and more. Here's a snippet to illustrate scheduling a task every hour:
188+
189+
```python
190+
import sched
191+
import time
192+
193+
def hourly_task():
194+
print("Performing hourly task!")
195+
196+
scheduler = sched.scheduler(time.time, time.sleep)
197+
198+
# Schedule the task every hour
199+
interval = 3600 # 1 hour in seconds
200+
while True:
201+
scheduler.enter(interval, 1, hourly_task, ())
202+
scheduler.run()
203+
```
204+
205+
**Cron-like Scheduling: `schedule` Library**
206+
207+
For more advanced scheduling, the `schedule` library offers a cron-like syntax. Check out how easy it is to schedule tasks with this powerful tool:
208+
209+
```python
210+
import schedule
211+
import time
212+
213+
def daily_task():
214+
print("Daily task is due!")
215+
216+
# Schedule a task to run daily at 3:30 PM
217+
schedule.every().day.at("15:30").do(daily_task)
218+
219+
while True:
220+
schedule.run_pending()
221+
time.sleep(1)
222+
```
223+
224+
🔍 **Tailoring to Your Time Needs: Versatility of Scheduling**
225+
226+
Whether it's running regular maintenance scripts, sending automated emails, or managing data backups, Python's scheduler empowers you to automate tasks according to your precise timing needs.
227+
228+
🌐 **Unlock the Potential of Python's Scheduler!**
229+
230+
Say goodbye to manual task management and hello to efficient automation with Python's scheduler. From simple delays to intricate cron-like scheduling, Python has your back when it comes to managing time and tasks.

doc/newsletters/index.2023.rst

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
.. toctree::
44
:maxdepth: 4
55

6+
Augest - Week 34 <2023/WEEK_34.md>
67
Augest - Week 33 <2023/WEEK_33.md>
78
Augest - Week 32 <2023/WEEK_32.md>
89
Augest - Week 31 <2023/WEEK_31.md>

0 commit comments

Comments
 (0)