#python python... PYTHON πŸ”› πŸš€
11 subscribers
914 photos
7 videos
158 files
1.54K links
Download Telegram
πŸ” Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнты статичСского Π°Π½Π°Π»ΠΈΠ·Π° Π² ΠΊΠΎΠ΄Π΅ Python

Π—Π° послСдниС нСсколько Π»Π΅Ρ‚ статичСскиС Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ ΠΊΠΎΠ΄Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. БтатичСский Π°Π½Π°Π»ΠΈΠ· избавляСт ΠΎΡ‚ нСобходимости ΠΎΡ‚Ρ‹ΡΠΊΠΈΠ²Π°Ρ‚ΡŒ ошибки ΠΈ уязвимости Π² систСмС ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½ ΠΈΠ»ΠΈ срСдС развСртывания, указывая участок ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎΠ³ΠΎ сбоя Π½Π° основС Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… подсказок ΠΊΠΎΠ΄Π°.

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ нСсколько инструмСнтов статичСского Π°Π½Π°Π»ΠΈΠ·Π° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ПО для Python. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°ΡŽΡ‚ процСсс программирования.

β–ͺ Π§ΠΈΡ‚Π°Ρ‚ΡŒ

@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
import sqlite3
from functools import wraps

def create_cache_table():
conn = sqlite3.connect("cache.db")
c = conn.cursor()
c.execute("CREATE TABLE IF NOT EXISTS cache (input text, output text)")
conn.commit()
conn.close()

def drop_cache_table():
conn = sqlite3.connect("cache.db")
c = conn.cursor()
c.execute("DROP TABLE IF EXISTS cache")
conn.commit()
conn.close()

def store_in_cache(input, output):
create_cache_table()
conn = sqlite3.connect("cache.db")
c = conn.cursor()
c.execute("INSERT INTO cache VALUES (?,?)", (input, output))
conn.commit()
conn.close()

def retrieve_from_cache(input):
create_cache_table()
conn = sqlite3.connect("cache.db")
c = conn.cursor()
c.execute("SELECT output FROM cache WHERE input=?", (input,))
result = c.fetchone()
conn.close()
if result:
return result[0]
return None

def cache(func):
@wraps(func)
def wrapper(input):
output = retrieve_from_cache(input)
if output is not None:
print("# from cache: ", end='\t')
return output
else:
print("# new question: ", end='\t')
output = func(input)
store_in_cache(input, output)
return output
return wrapper

@cache
def get_answer(input):
ai_dict = {
"who are you" : "stupid algorithm)",
"2 + 2": '4',
}
return '\t'*3 + ai_dict.get(input, "I don't khow
πŸ€·β€β™‚οΈ")

def test():
drop_cache_table()
test_ai_qsts = [
"who are you",
"2 + 2",
"who are you",
"ok"
]
for q in test_ai_qsts:
print(
q, get_answer(q),
sep=' -> \n',
)

if __name__ == '__main__':
test()


@getcher ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²
Forwarded from DataEng
100 самых популярных Python Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠ²

НашСл Π² сСти ΠΏΠΎΠ΄Π±ΠΎΡ€ΠΊΡƒ ΠΈΠ· 100 самых просматриваСмых Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠ² ΠΏΡ€ΠΎ Python: 100 most-watched Python 2023 conference talks ordered by the number of views
Π‘Ρ€Π΅Π΄ΠΈ этих Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠ² популярны Ρ‚Π΅ΠΌΡ‹ ΠΏΡ€ΠΎ Rust, data engineering ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

К слову, PyCon US 2024 ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΡˆΠ΅Π», Π½ΠΎ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ доступС Π΄ΠΎ сих ΠΏΠΎΡ€ Π½Π΅Ρ‚ Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠ². НадСюсь Π½Π° ΠΈΡ… скороС появлСниС, Ρ‚.ΠΊ. Ρ‚Π°ΠΌ Π΅ΡΡ‚ΡŒ Π½Π° Ρ‡Ρ‚ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ.
Simplifying the Python Code for Data Engineering Projects
ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Π°Ρ ΡΡ‚Π°Ρ‚ΡŒΡ (10 min read)

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π½Π΅Ρ‚? Π‘Π΄Π΅Π»Π°Π»ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ содСрТаниС πŸ™Œ


Π‘Ρ‚Π°Ρ‚ΡŒΡ исслСдуСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности ΠΈ читаСмости ΠΊΠΎΠ΄Π° Π½Π° Python Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…. Она ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π²Π°ΠΆΠ½Ρ‹Π΅ аспСкты, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π²Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ тСстированиС ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Python.

Π’Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ…
πŸ“Œ ИспользованиС yield для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π½Π°Π±ΠΎΡ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…: yield позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ элСмСнту Π·Π° Ρ€Π°Π· вмСсто Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ всСх Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ. Π­Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ позволяСт ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ ΡƒΡΠΊΠΎΡ€ΡΡ‚ΡŒ процСсс ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

πŸ“Œ ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… частями: ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ всС Π΄Π°Π½Π½Ρ‹Π΅ сразу, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… порциями (batch processing). Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ позволяСт Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΈΡ… ΠΏΠΎΠ»Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…
πŸ“Œ ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Pydantic для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠΎΠ»Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ…: Pydantic позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ схСму Π΄Π°Π½Π½Ρ‹Ρ… с использованиСм ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Python. Π­Ρ‚ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° соотвСтствиС Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΈΡ… Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ.

πŸ“Œ РСализация ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ» ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ: Pydantic ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ созданиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ значСния ΠΏΠΎΠ»Π΅ΠΉ Π½Π° соотвСтствиС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ критСриям (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, допустимым значСниям ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²). Π­Ρ‚ΠΎ позволяСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ качСство Π΄Π°Π½Π½Ρ‹Ρ….

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…
πŸ“Œ ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Python для измСрСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния: Π”Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ Π±Π΅Π· измСнСния ΠΈΡ… исходного ΠΊΠΎΠ΄Π°. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ для измСрСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ ΡƒΠ·ΠΊΠΈΠ΅ мСста ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

πŸ“Œ ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² программирования (map, filter, reduce):
- map примСняСтся для выполнСния ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ всСми элСмСнтами списка (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ суффикса ΠΊ значСниям ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²).
- filter позволяСт ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты списка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ условиям (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ записи с ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ "Cryptocurrency").
- reduce ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для получСния СдинствСнного значСния ΠΈΠ· списка (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, суммированиС всСх Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ).

ВСстированиС ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π° Π΄Π°Π½Π½Ρ‹Ρ…
πŸ“Œ ИспользованиС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Pytest для ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования: Pytest прСдоставляСт ΠΌΠΎΡ‰Π½Ρ‹Π΅ возмоТности для написания ΠΈ выполнСния тСстов, Ρ‡Ρ‚ΠΎ позволяСт ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² систСмы. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ свои Π·Π°Π΄Π°Ρ‡ΠΈ.

πŸ“Œ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° качСства Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ошибок: ВСстированиС ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ логичСскиС ошибки ΠΈ нСсоотвСтствия Π½Π° Ρ€Π°Π½Π½ΠΈΡ… стадиях Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π­Ρ‚ΠΎ особСнно Π²Π°ΠΆΠ½ΠΎ для слоТных ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, Π³Π΄Π΅ ошибки ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠΌΡ‹ΠΌΠΈ.

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ
πŸ“Œ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ясного ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:
Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½Π° логичСскиС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

πŸ“Œ Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ тСстирования ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…: ВСстированиС ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ высокоС качСство Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы Π² Ρ†Π΅Π»ΠΎΠΌ.


#ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ
На днях ΠΌΠ½Π΅ ΠΏΠΎΠ΄ΠΊΠΈΠ½ΡƒΠ»ΠΈ интСрСсный ΠΊΠ°Π½Π°Π» https://t.me/press_any_button , Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΏΡ€ΠΈΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒΡΡ, особСнно Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ 🐍

Авторы ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π³Π°ΠΉΠ΄Ρ‹ ΠΏΠΎ python, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½Π° django, использованию docker, написанию Π±ΠΎΡ‚ΠΎΠ² с aiogram ΠΈ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ‚Π΅ΠΌΠ°ΠΌ. Π’Π°ΠΊ ΠΆΠ΅ Ρ€Π°Π·Π±ΠΈΡ€Π°ΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° python. ОписаниС ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° Π² ΠΎΠ΄Π½ΠΎΠΌ постС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚ΡƒΡ‚ https://t.me/press_any_button/738 πŸ‘ˆ

Для Ρ‚Π΅Ρ… ΠΊΡ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ своСй ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΌΠΈΡ€ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ°Π½Π°Π» с самых ΠΏΠ΅Ρ€Π²Ρ‹Ρ… постов, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΡƒΡ€ΠΎΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сайтов с самого нуля πŸŽ“, Ссли Π²Π°ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ django.
# ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΊ Π΄ΠΎΠΊΠ»Π°Π΄Ρƒ Π½Π° PYCON RUSSIA: "Долгая Π΄ΠΎΡ€ΠΎΠ³Π° ΠΊ JIT"

Π£ΠΆΠ΅ Π·Π°Π²Ρ‚Ρ€Π° стартуСт pycon, Π° я ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π² послСдний дСнь ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Ρ‹Π²Π°ΡŽ вСсь Π΄ΠΎΠΊΠ»Π°Π΄ πŸ˜‚. Π’Ρ‹ΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎ Π΄ΠΎΠΊΠ»Π°Π΄Ρƒ для Π·Ρ€ΠΈΡ‚Π΅Π»Π΅ΠΉ. Π—Π°Π²Ρ‚Ρ€Π° послС выступлСния Π²Ρ‹Π»ΠΎΠΆΡƒ Π² ΠΊΠ°Π½Π°Π» ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, Π½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Π΅ Π²ΠΈΠ΄Π΅ΠΎ записи придСтся ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ.

## ΠŸΡ€ΠΎ cpython ΠΈ Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄

- ΠΡ„ΠΎΠ½Π°ΡΡŒΠ΅Π² Π•Π²Π³Π΅Π½ΠΈΠΉ - А побыстрСС ΠΌΠΎΠΆΠ½ΠΎ? - Π΄ΠΎΠΊΠ»Π°Π΄ ΠΏΡ€ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с Π±Π°ΠΉΡ‚ΠΎΠΊΠΎΠ΄ΠΎΠΌ, Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π½Π΅Π³ΠΎ я ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ ΠΈ ΠΊΠ°ΠΊ с Π½ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ cpython (ru)
- ΠΡ„ΠΎΠ½Π°ΡΡŒΠ΅Π² Π•Π²Π³Π΅Π½ΠΈΠΉ - адаптируйся ΠΈΠ»ΠΈ ΡƒΠΌΡ€ΠΈ - Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄ΠΎΠΊΠ»Π°Π΄Π° ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ разбираСтся, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Specializing Adaptive Interpreter (ru)

## ΠŸΡ€ΠΎ JIT Π² Ρ†Π΅Π»ΠΎΠΌ

- Ρ€Π°Π·Π±ΠΎΡ€ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ² для JIT Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ простой Π‘ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (ru)
- ΠΏΡ€ΠΈΠΌΠ΅Ρ€ написания JIT для brainfuck ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ (eng)
- ΠΏΡ€ΠΈΠΌΠ΅Ρ€ написания jit для lua (eng)

## ИзмСнСния Π² python послСдних Π»Π΅Ρ‚

- ΠΊΠ°ΠΊ выглядит DSL для Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄Π° Π² исходном ΠΊΠΎΠ΄Π΅ cpython (eng)
- спСцификация DSL для Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄Π° (eng)
- Ρ€Π°Π½Π½ΠΈΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ tier2 ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Π° (uops) (eng)
- PEP 669 – Low Impact Monitoring for CPython (eng)
- PEP 689 – Unstable C API tier (eng)

## PEP 744 – JIT Compilation

- Brandt Bucher – A JIT Compiler for CPython прСзСнтация для ΠΊΠΎΡ€ Π΄Π΅Π²Π΅Π»ΠΎΠΏΠ΅Ρ€ΠΎΠ² (eng)
- JIT Π² Python | Никита Π‘ΠΎΠ±ΠΎΠ»Π΅Π² Π΄ΠΎΠΊΠ»Π°Π΄ ΠΎΡ‚ core developer (ru)
- PR с добавлСниСм JIT (eng)
- PEP ΠΏΡ€ΠΎ JIT, написанный ΠΈ принятый ΡƒΠΆΠ΅ послС ΠΌΠ΅Ρ€ΠΆΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (eng)
- обсуТдСниС PEP (eng)
- научная публикация ΠΏΡ€ΠΎ copy-and-patch jit (eng)
- Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ ΡΡ‚Π°Ρ‚ΡŒΡ с простым Ρ€Π°Π·ΡŠΡΡΠ½Π΅Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠ³ΠΎ JIT Π² python (eng)

#pycon
Π’Ρ‹Π»ΠΎΠΆΠΈΠ»ΠΈ Π² ΠΏΠ°Π±Π»ΠΈΠΊ ΠΏΠΎΠ»Π½Ρ‹ΠΉ плСйлист Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠ² с ekbpy πŸ”₯

ΠžΡ‚ сСбя Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π΄ΠΎΠΊΠ»Π°Π΄Π°ΠΌΠΈ

🀜 Николай ΠœΠ°Ρ€ΠΊΠΎΠ² - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ - Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅, ΠΏΠ»ΠΎΡ…ΠΎΠ΅, Π·Π»ΠΎΠ΅? - ΠΎΡΠ½ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ историчСский ΠΎΠ±Π·ΠΎΡ€ инструмСнтов управлСния ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ Π² python, ΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ сСйчас?
🀜 АлСксандр Π“ΠΎΠ½Ρ‡Π°Ρ€ΠΎΠ². Чистый ΠΊΠΎΠ΄: Π°Π½Ρ‚ΠΈΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅, ΠΈ ΠΊΠ°ΠΊ с Π½ΠΈΠΌΠΈ Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ - Π±ΠΎΠ΄Ρ€ΠΎ, вСсСло, Π·Π°Π΄ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΎ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ Π°Π½Ρ‚ΠΈΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹, Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ ΠΏΠΎΠ΄Π°Ρ‡Π°, ΡŽΠΌΠΎΡ€
🀜 Аль Амин Π£ΠΆΠ°Ρ…ΠΎΠ². Как Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Litestar? - ΠΏΡ€ΠΎ интСрСсныС особСнности Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ устройства Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°

#ekbpy
https://peps.python.org/pep-0751/

Π’Ρ‹ Π½Π΅ ΠΆΠ΄Π°Π»ΠΈ ΠΈ Π½Π΅ просили, Π½ΠΎ ΠΎΠ½ ΠΏΡ€ΠΈΡˆΠ΅Π». ΠžΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ pep ΠΏΡ€ΠΎ стандартный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ lock Ρ„Π°ΠΉΠ»ΠΎΠ² для фиксации вСрсий Ρ‚Ρ€Π°Π½Π·ΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… зависимостСй Π² python. Автор ΡƒΠΆΠ΅ Π΄Π°Π²Π½ΠΎ Π±ΡŒΠ΅Ρ‚ΡΡ Π·Π° ΠΏΡ€Π°Π²ΠΎ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ pep, ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² этот Ρ€Π°Π· Π΅ΠΌΡƒ сопутствуСт ΡƒΠ΄Π°Ρ‡Π°. ВсС ΠΆΠ΅ Π»ΡŽΡ‚Ρ‹ΠΉ Π·ΠΎΠΎΠΏΠ°Ρ€ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ (poentry, pipenv, pdm, rye) ΠΏΠΎΡ€Π° ΡƒΠΆΠ΅ привСсти ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ ΠΎΠ±Ρ‰Π΅ΠΌΡƒ Π·Π½Π°ΠΌΠ΅Π½Π°Ρ‚Π΅Π»ΡŽ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°
PEP 665 – A file format to list Python dependencies for reproducibility of an application - послСдний ΠΎΡ‚ΠΊΠ»Π°Π½Π΅Π½Π½Ρ‹ΠΉ pep ΠΎΡ‚ этого ΠΆΠ΅ Π°Π²Ρ‚ΠΎΡ€Π°
Forwarded from Zen of Python
Π’ Python слишком ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ² ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²?

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ JavaScript, C#, Dart ΠΈΠ»ΠΈ Rust, Π³Π΄Π΅ Π΅ΡΡ‚ΡŒ стандартизированныС ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Ρ‚ΠΈΠΏΠ° npm, NuGet, pub ΠΈΠ»ΠΈ Cargo, Python стандарты обошли стороной. Π£ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ Ρ†Π΅Π»Ρ‹ΠΉ Π²ΠΎΡ€ΠΎΡ… ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, pip, venv, conda ΠΈ Π΄Ρ€.

Π₯ΠΎΡ€ΠΎΡˆΠΎ это ΠΈΠ»ΠΈ ΠΏΠ»ΠΎΡ…ΠΎ? Автор этой ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² этом вопрос, ΠΏΠΎΠΏΡƒΡ‚Π½ΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π² популярныС ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹ для Python:

https://dublog.net/blog/so-many-python-package-managers/

А Π²Ρ‹ Π·Π° ΠΎΠ±ΠΈΠ»ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‡Ρ‚Π°Π΅Ρ‚Π΅ ΠΎ стандартизации?
Forwarded from Zen of Python
Как ΠΏΠΈΡΠ°Ρ‚ΡŒ чистый ΠΊΠΎΠ΄ Π½Π° Python. Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ

Написав нСсколько ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ использованиС ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² ΠΈ ΠΏΡ€Π°Π²ΠΈΠ» написания ΠΊΠΎΠ΄Π° Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ. А Ссли Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с ΠΊΠ΅ΠΌ-Ρ‚ΠΎ, Ρ‚ΠΎ Π±Π΅Π· этого Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΠΈΠΊΡƒΠ΄Π°.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ PEP8, poetry, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ python-прилоТСния, ΠΊΠ°ΠΊΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ Driven Development ΠΈ ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ чистый ΠΊΠΎΠ΄ Π½Π° Python.

#совСты #чистыйкод
Forwarded from Zen of Python
ΠΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎΡΡ‚ΡŒ, ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠ½ΠΎΡΡ‚ΡŒ Π² python

Π₯ΠΎΡ‚ΡŒ Python ΠΏΠΎΠΊΠ° ΠΈ Π½Π΅ стал ΠΏΠΎ-Π½Π°ΡΡ‚ΠΎΡŽΡ‰Π΅ΠΌΡƒ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹ΠΌ, ΠΊΠ°ΠΊ Π½Π°ΠΌ ΠΎΠ±Π΅Ρ‰Π°ΡŽΡ‚ Π² Python 3.13, ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ ΠΎΠ½ всё ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого Π²ΠΈΠ΄Π΅ΠΎ Π²Ρ‹ смоТСтС Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ:

β€” Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ асинхронноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅;
β€” ΠΊΠ°ΠΊΠΈΠ΅ Π΅ΡΡ‚ΡŒ Π²ΠΈΠ΄Ρ‹ многозадачности ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ прилоТСния;
β€” ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΏΡ€ΠΎ процСссы, ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΈ асинхронный ΠΊΠΎΠ΄.

https://youtu.be/_4QY1nGFRY8

#Π²ΠΈΠ΄Π΅ΠΎ #ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ
Forwarded from Zen of Python
Π’ Python слишком ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ² ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²?

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ JavaScript, C#, Dart ΠΈΠ»ΠΈ Rust, Π³Π΄Π΅ Π΅ΡΡ‚ΡŒ стандартизированныС ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Ρ‚ΠΈΠΏΠ° npm, NuGet, pub ΠΈΠ»ΠΈ Cargo, Python стандарты обошли стороной. Π£ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ Ρ†Π΅Π»Ρ‹ΠΉ Π²ΠΎΡ€ΠΎΡ… ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, pip, venv, conda ΠΈ Π΄Ρ€.

Π₯ΠΎΡ€ΠΎΡˆΠΎ это ΠΈΠ»ΠΈ ΠΏΠ»ΠΎΡ…ΠΎ? Автор этой ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² этом вопрос, ΠΏΠΎΠΏΡƒΡ‚Π½ΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π² популярныС ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹ для Python:

https://dublog.net/blog/so-many-python-package-managers/

А Π²Ρ‹ Π·Π° ΠΎΠ±ΠΈΠ»ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‡Ρ‚Π°Π΅Ρ‚Π΅ ΠΎ стандартизации?
Forwarded from Zen of Python
Как ΠΏΠΈΡΠ°Ρ‚ΡŒ чистый ΠΊΠΎΠ΄ Π½Π° Python. Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ

Написав нСсколько ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ использованиС ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² ΠΈ ΠΏΡ€Π°Π²ΠΈΠ» написания ΠΊΠΎΠ΄Π° Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ. А Ссли Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с ΠΊΠ΅ΠΌ-Ρ‚ΠΎ, Ρ‚ΠΎ Π±Π΅Π· этого Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΠΈΠΊΡƒΠ΄Π°.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ PEP8, poetry, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ python-прилоТСния, ΠΊΠ°ΠΊΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ Driven Development ΠΈ ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ чистый ΠΊΠΎΠ΄ Π½Π° Python.

#совСты #чистыйкод
Forwarded from Zen of Python
ΠΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎΡΡ‚ΡŒ, ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠ½ΠΎΡΡ‚ΡŒ Π² python

Π₯ΠΎΡ‚ΡŒ Python ΠΏΠΎΠΊΠ° ΠΈ Π½Π΅ стал ΠΏΠΎ-Π½Π°ΡΡ‚ΠΎΡŽΡ‰Π΅ΠΌΡƒ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹ΠΌ, ΠΊΠ°ΠΊ Π½Π°ΠΌ ΠΎΠ±Π΅Ρ‰Π°ΡŽΡ‚ Π² Python 3.13, ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ ΠΎΠ½ всё ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого Π²ΠΈΠ΄Π΅ΠΎ Π²Ρ‹ смоТСтС Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ:

β€” Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ асинхронноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅;
β€” ΠΊΠ°ΠΊΠΈΠ΅ Π΅ΡΡ‚ΡŒ Π²ΠΈΠ΄Ρ‹ многозадачности ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ прилоТСния;
β€” ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΏΡ€ΠΎ процСссы, ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΈ асинхронный ΠΊΠΎΠ΄.

https://youtu.be/_4QY1nGFRY8

#Π²ΠΈΠ΄Π΅ΠΎ #ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ
Forwarded from Data Whisperer
Π›ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹ Π² Python

Π’ python ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΠ½Ρ‚Π΅Ρ€ΠΎΠ² Π½Π° любой вкус ΠΈ Ρ†Π²Π΅Ρ‚, Π²Ρ‹Π±ΠΈΡ€Π°ΠΉ ΠΊΠ°ΠΊΠΎΠΉ нравится ΠΈ настраивай ΠΏΠΎΠ΄ сСбя.
Но Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅ самым ТСстким являСтся wemake-python-styleguide
Π£ Π½ΠΈΡ… Π΄Π°ΠΆΠ΅ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ страницС заявлСно

Welcome to the strictest and most opinionated Python linter ever.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ ΠΊΠ½Ρ‚Ρ€ΠΈΠ±ΡŒΡŽΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° являСтся Никита Π‘ΠΎΠ±ΠΎΠ»Π΅Π², Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΡ€ΡƒΡ‚ΠΎΠΉ курс Випизация Π² Python.

Π”Π°Ρ‚Π° Π˜Π½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π½Π΅ Ρ‚Π°ΠΊ сильно ΡƒΠΏΠ°Ρ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π»ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹ ΠΈ CI ΠΊΠ°ΠΊ бэкСндСры, Π½ΠΎ всС Ρ‡Π°Ρ‰Π΅ это присутсвуСт Π² Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ….

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Airflow ΠΈ TaskFlow API.

Π‘Π΅Ρ€Π΅ΠΌ ΠΊΠΎΠ΄ с сайта Astranomer ΠΈ запускаСм Π»ΠΈΠ½Ρ‚Π΅Ρ€ с настройками ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ.
Если Π½Π΅ Π±Ρ€Π°Ρ‚ΡŒ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ простыС Π²ΠΎΡ€Π½ΠΈΠ½Π³ΠΈ Ρ‚ΠΈΠΏΠ°:

- Q000 Double quotes found but single quotes preferred
- W292 no newline at end of file

Π’ΠΎ стоит ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΎΡ€Π½ΠΈΠ³:
- WPS430 Found nested function: extract_bitcoin_price


@dag(schedule="@daily", start_date=datetime(2021, 12, 1), catchup=False)
def taskflow():
@task(task_id="extract", retries=2)
def extract_bitcoin_price() -> Dict[str, float]:
return requests.get(API).json()["bitcoin"]


ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π΄Π°Π³Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹ ΠΏΡ€ΠΎΡˆΠ»ΠΈ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ синтаксис написания Π΄Π°Π³Π° (ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Π½Π° сайтС astronomer Π½Π° Traditional syntax).
И ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΉ интСрСсный Π²ΠΎΡ€Π½ΠΈΠ½Π³:

- WPS428 Found statement that has no effect


extract_bitcoin_price >> process_data >> store_data


ВсСм Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΉ синтаксис обьявлСния зависимомтСй Π² airflow Ρ‚ΠΎΠΆΠ΅ Π½Π΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π»ΠΈΠ½Ρ‚Π΅Ρ€.
ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹ ΠΏΡ€ΠΎΡˆΠ»ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° синтаксиса Π² Airflow.

Π›ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹ бСзусловно Π½ΡƒΠΆΠ½Ρ‹, Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π»ΠΈΠ½Ρ‚Π΅Ρ€ настраиваится ΠΏΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π° Π½Π΅ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.
ΠŸΠ΅Ρ€Π΅Π΄ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ΠΌ Π»ΠΈΠ½Ρ‚Π΅Ρ€ΠΎΠ² Π² свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ обсудити с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹, Π° ΠΎΡ‚ ΠΊΠ°ΠΊΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ.
Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π±Ρ‹Π» ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π²Ρ‹ΡˆΠ΅ с Airflow, всС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° тСстировал с ΠΎΡ„Ρ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ сайта Airflow ΠΈ Astronomer
Forwarded from Data Whisperer
И Π² Π΄ΠΎΠ³ΠΎΠ½ΠΊΡƒ пятничноС ΠΏΡ€ΠΎ Π»ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹ для Python Dev