πΊπ¦ Python Programming Π‘hallenges
ΠΡΠΊΡΡΡΡ Π² Telegram
Π Π°Π·ΠΌΡΡΠ»Π΅Π½ΠΈΡ Π½Π° ΡΠ΅ΠΌΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π·Π°Π΄Π°Ρ ΠΏΠΎ ΡΠΏΠΎΡΡΠΈΠ²Π½ΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Python ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ.
ΠΠΎΠ»ΡΡΠ΅839
ΠΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΈ
ΠΠ΅Ρ Π΄Π°Π½Π½ΡΡ
24 ΡΠ°ΡΠ°
ΠΠ΅Ρ Π΄Π°Π½Π½ΡΡ
7 Π΄Π½Π΅ΠΉ
+1730 Π΄Π½Π΅ΠΉ
ΠΡΡ
ΠΈΠ² ΠΏΠΎΡΡΠΎΠ²
beta preview of Python 3.9 is out:
- PEP 584, Union Operators in dict
- PEP 585, Type Hinting Generics In Standard Collections
- PEP 593, Flexible function and variable annotations
- PEP 602, Python adopts a stable annual release cadence
- PEP 615, Support for the IANA Time Zone Database in the Standard Library
- PEP 616, String methods to remove prefixes and suffixes
- PEP 617, New PEG parser for CPython
https://www.python.org/downloads/release/python-390b2/
Import Linter allows you to define and enforce rules for the imports within and between Python packages.
[importlinter]
root_package = myproject
[importlinter:contract:1]
name=Foo doesn't import bar or baz
type=forbidden
source_modules=
myproject.foo
forbidden_modules=
myproject.bar
myproject.baz
Example output:
============= Import Linter ============= --------- Contracts --------- Analyzed 23 files, 44 dependencies. ----------------------------------- Foo doesn't import bar or baz BROKEN Contracts: 1 broken.https://import-linter.readthedocs.io/en/stable/readme.html
ΠΠΎΡΠ»Π΅ ΠΌΠΎΠ΅Π³ΠΎ Π΄ΠΎΠΊΠ»Π°Π΄Π° Π½Π° python fwdays ΠΎΠ±Π΅ΡΠ°Π» ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ tcpdump:
Andrii Soldatenko, [18.05.20 13:15]
tcpdump example:
1. Π― Π·Π°ΠΏΡΡΡΠΈΠ» postgresql Π² Π΄ΠΎΠΊΠ΅ΡΠ΅ ΠΈ ΠΏΡΠΎΠ±ΡΠΎΡΠ»ΠΈ ΠΏΠΎΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΡ (5432)
f9284723a810 postgres "docker-entrypoint.sβ¦" 2 days ago Up 2 days 0.0.0.0:5432->5432
2. Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ tcpdump:
sudo tcpdump -i lo0 -nX dst port 5432Π²Π°ΠΆΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ: -X print data of each packet in hex and ascii 3. ΠΠΎΠ³ΠΈΠ½ΠΈΠΌΡΡ
PGPASSWORD=postgres psql -U postgres -h localhost4. Π’ΠΎ ΡΡΠΎ Π²ΠΈΠ΄ΠΈΠΌ Π² tcpdump output (Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Ρ ΠΏΡΠΎΠΏΡΡΡΠΈΠ»):
13:09:25.020387 IP6 ::1.62337 > ::1.5432: Flags [P.], seq 8:92, ack 2, win 6371, options [nop,nop,TS val 962074756 ecr 962074756], length 84
0x0000: 6004 334d 0074 0640 0000 0000 0000 0000 `.3M.t.@........
0x0010: 0000 0000 0000 0001 0000 0000 0000 0000 ................
0x0020: 0000 0000 0000 0001 f381 1538 3b74 c631 ...........8;t.1
0x0030: b72a e9e7 8018 18e3 007c 0000 0101 080a .*.......|......
0x0040: 3958 1884 3958 1884 0000 0054 0003 0000 9X..9X.....T....
0x0050: 7573 6572 0070 6f73 7467 7265 7300 6461 user.postgres.da
0x0060: 7461 6261 7365 0070 6f73 7467 7265 7300 tabase.postgres.
0x0070: 6170 706c 6963 6174 696f 6e5f 6e61 6d65 application_name
0x0080: 0070 7371 6c00 636c 6965 6e74 5f65 6e63 .psql.client_enc
0x0090: 6f64 696e 6700 5554 4638 0000 oding.UTF8..
1
13:09:25.022436 IP6 ::1.62337 > ::1.5432: Flags [P.], seq 92:133, ack 15, win 6371, options [nop,nop,TS val 962074758 ecr 962074758], length 41
0x0000: 6004 334d 0049 0640 0000 0000 0000 0000 `.3M.I.@........
0x0010: 0000 0000 0000 0001 0000 0000 0000 0000 ................
0x0020: 0000 0000 0000 0001 f381 1538 3b74 c685 ...........8;t..
0x0030: b72a e9f4 8018 18e3 0051 0000 0101 080a .*.......Q......
0x0040: 3958 1886 3958 1886 7000 0000 286d 6435 9X..9X..p...(md5
0x0050: 6234 3339 6532 3464 3065 6231 3861 3635 b439e24d0eb18a65
0x0060: 6431 6563 3039 6438 3231 3333 3665 6565 d1ec09d821336eee
0x0070: 00 .
1
ΠΠ°Π»Π΅Π΅ Π²ΡΠ΅ Π·Π°Π²ΠΈΡΡ ΠΎΡ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠ΅Π½ Π²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ ΠΠ (https://www.postgresql.org/docs/9.1/auth-pg-hba-conf.html)
Ρ ΠΌΠ΅Π½Ρ ΡΡΠΎ md5 - Require the client to supply an MD5-encrypted password for authentication. See Section 19.3.2 for details.
13:09:25.022436 IP6 ::1.62337 > ::1.5432: Flags [P.], seq 92:133, ack 15, win 6371, options [nop,nop,TS val 962074758 ecr 962074758], length 41
0x0000: 6004 334d 0049 0640 0000 0000 0000 0000 `.3M.I.@........
0x0010: 0000 0000 0000 0001 0000 0000 0000 0000 ................
0x0020: 0000 0000 0000 0001 f381 1538 3b74 c685 ...........8;t..
0x0030: b72a e9f4 8018 18e3 0051 0000 0101 080a .*.......Q......
0x0040: 3958 1886 3958 1886 7000 0000 286d 6435 9X..9X..p...(md5
0x0050: 6234 3339 6532 3464 3065 6231 3861 3635 b439e24d0eb18a65
0x0060: 6431 6563 3039 6438 3231 3333 3665 6565 d1ec09d821336eee
0x0070: 00 .
1
Π½ΠΎ Π±ΡΠ²Π°Π΅Ρ ΡΠ°ΠΌ ΡΡΠΎΠΈΡ password - Require the client to supply an unencrypted password for authentication =)A tool (and pre-commit hook) to automatically add trailing commas to calls and literals.
tl;dr:
# with no trailing commas x( - arg + arg, + arg2 )
# with trailing commas
x(
arg,
+ arg2,
)
https://github.com/asottile/add-trailing-comma"filter(P, S) is almost always written clearer as [x for x in S if P(x)]"
(Ρ) Guido van Rossum on Python
ΠΡΠ²ΠΈΠ΄ ΠΠΈΠ·Π»ΠΈ Π²ΡΠ»ΠΎΠΆΠΈΠ» ΠΊΡΡΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΡΠ°ΡΠΈΠ» ΠΎΠΊΠΎΠ»ΠΎ 13 Π»Π΅Ρ:
https://dabeaz-course.github.io/practical-python
Π‘Π΅Π³ΠΎΠ΄Π½Ρ Π±ΡΠ΄Ρ Π²ΡΡΡΡΠΏΠ°ΡΡ Π½Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΉ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ Python fwdaysβ19 Ρ ΡΠ΅ΠΌΠΎΠΉ: "The art of data engineering".
-> https://fwdays.com/event/python-fwdays-online-conference
PEG Parsers Guido van Rossum
https://medium.com/@gvanrossum_83706/peg-parsers-7ed72462f97c
ΠΠ²ΡΠΎΡ python requests ΠΈΡΠ΅Ρ Π½ΠΎΠ²ΡΡ
Π²Π»Π°Π΄Π΅Π»ΡΡΠ΅Π² Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π², ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΈΡ
Π²ΠΎ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ Π² ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅
ΠΡΠ»ΠΈ Π²Ρ ΡΠΌΠ΅Π΅ΡΠ΅ Π² python ΠΈ Π²Π°ΠΌ Π±Π»ΠΈΠ·ΠΊΠ° ΡΠ΅ΠΌΠ° open source - wellcome!
COME ON SHOW US THE REGULAR EXPRESSION
ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Cloudflare ΠΎΠ±Π΅ΡΠ°Π΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ...
https://blog.cloudflare.com/cloudflare-outage/
ΠΡΠ»ΠΈ Π²Ρ Π΅ΡΠ΅ Π½Π΅ Π² ΠΊΡΡΡΠ΅ ΡΠΎ ΡΠΆΠ΅ Π΅ΡΡΡ Π²ΠΈΠ΄Π΅ΠΎ Ρ FOSDEM
https://video.fosdem.org/2019/UD2.120/
How to toggle a value in Python:
https://stackoverflow.com/questions/8381735/how-to-toggle-a-value-in-python
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ Π³ΠΎΠ»ΠΎΡΠΎΠ²Π°Π½ΠΈΡ Python Core Devs ΠΊΠ°ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±Π΅Π· BDFL ->
https://discuss.python.org/t/python-governance-vote-december-2018-results/546
ΠΠ°ΡΠ΅Π» ΡΡΠ°ΡΡΠΉ, Π½ΠΎ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΉ Π΄ΠΎΠΊΠ»Π°Π΄ ΠΎΡ ΠΠ²ΡΠΎΡΠ° ΠΊΠ½ΠΈΠ³ΠΈ "Effective Python" Π½Π° PyConUS 2016 :)
ΠΡΠ΅Π½Ρ ΠΊΡΡΡΡΠ΅ Jupyter notebooks -> https://github.com/bslatkin/pycon2016
https://www.youtube.com/watch?v=D_6ybDcU5gc
Guido van Rossum is the creator of Python, one of the most popular and impactful programming languages in the world. This conversation is part of the Artificial Intelligence podcast and the MIT course 6.S099: Artificial General Intelligence.
https://www.youtube.com/watch?time_continue=1&v=ghwaIiE3Nd8
ΠΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Ρ!
15-16 ΡΠ΅Π²ΡΠ°Π»Ρ 2019 Π³ΠΎΠ΄Π° ΠΏΡΠΎΠΉΠ΄Π΅Ρ PyConBelarus, ΠΌΡ ΡΠΆΠ΅ Π½Π°ΡΠ°Π»ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π°ΡΠ²ΠΊΠΈ Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Ρ ΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠ΅ΠΌ Π½ΠΎΠ²ΡΡ
ΡΠΏΠΈΠΊΠ΅ΡΠΎΠ² :)
ΠΡΠ»ΠΈ Π²Ρ Π΄ΡΠΌΠ°Π΅ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΡ Π΄ΠΎΠΊΠ»Π°Π΄ ΠΈΠ»ΠΈ ΡΡΠΎ Π²Π°ΡΠ° ΠΏΠ΅ΡΠ²Π°Ρ Π·Π°ΡΠ²ΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΌΠ½Π΅, Ρ ΠΏΠΎΠ΄ΡΠΊΠ°ΠΆΡ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ (telegram/twitter @a_soldatenko)
https://www.papercall.io/pyconby
https://by.pycon.org/
This function helps you do not see errors during upload solutions, because you forget to switch back to sys.stdin and also you can easily debug your code with ipdb or another python debuggers
https://gist.github.com/andriisoldatenko/cd6d10e2d9ff147a612838e8afa34e3d
Π‘Π»Π°ΠΉΠ΄Ρ ΠΌΠΎΠ΅Π³ΠΎ Π΄ΠΎΠΊΠ»Π°Π΄Π° Π½Π° OdessaPY'18 - https://goo.gl/ZjY8JP
Π’Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ
ΡΡΡΠ»ΠΎΠΊ ΠΈ ΠΊΠ½ΠΈΠ³)
Code Jam 2018 Finals Livestream
https://www.youtube.com/watch?v=urT6rDu60h4&feature=share
