Pytoolz - Π½Π°Π±ΠΎΡ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ², ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ.
https://proglib.io/w/786510ed
https://proglib.io/w/786510ed
GitHub
GitHub - pytoolz/toolz: A functional standard library for Python.
A functional standard library for Python. Contribute to pytoolz/toolz development by creating an account on GitHub.
Π’Π΅ΡΡΡ ΠΏΠΎ Python
ΠΠΎΠΏΡΠΎΡΡ ΠΏΠΎ Π―Π python
ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ
ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ
@kamilonly
https://t.me/pythontesti
ΠΠΎΠΏΡΠΎΡΡ ΠΏΠΎ Π―Π python
ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ
ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ
@kamilonly
https://t.me/pythontesti
Telegram
Π’Π΅ΡΡΡ ΠΏΠΎ Python
ΠΠΎΠΏΡΠΎΡΡ ΠΏΠΎ Python Π² Π²ΠΈΠ΄Π΅ ΡΠ΅ΡΡΠΎΠ².
Π£ΡΠΎΠ²Π½ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ: Junior, Middle.
ΠΠΎ ΡΠ΅ΠΊΠ»Π°ΠΌΠ΅: @anothertechrock
ΠΠ²ΡΠΎΡ: @aldrson
Π£ΡΠΎΠ²Π½ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ: Junior, Middle.
ΠΠΎ ΡΠ΅ΠΊΠ»Π°ΠΌΠ΅: @anothertechrock
ΠΠ²ΡΠΎΡ: @aldrson
Forwarded from Python Academy
ΠΠ°ΠΊΠ°Ρ ΡΠ΅ΠΌΠ° Π²Π°ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°?
Anonymous Poll
55%
Π’Π΅Π»Π΅Π³ΡΠ°ΠΌ-Π±ΠΎΡΡ
45%
ΠΡΠΈΡΠ½ΡΠΉ Ρ
Π°ΠΊΠΈΠ½Π³
Forwarded from Python Academy
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ pathlib Π²ΠΌΠ΅ΡΡΠΎ os
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Python 3 ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ pathlib, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ Π² ΡΠ΅Π±Ρ ΡΡΠ½ΠΊΡΠΈΡ
ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΊΡΡΡΡΡ ΡΠΈΡ Π² ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΡΡΡΠΌΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π°ΠΌΠ΅Π½Π°
ΠΠΎ ΡΡΡΠΈ ΡΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ°Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΡΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ
#path #os
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Python 3 ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ pathlib, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ Π² ΡΠ΅Π±Ρ ΡΡΠ½ΠΊΡΠΈΡ
Path()
, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΡ Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΌΠΈ ΠΏΡΡΡΠΌΠΈ.ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΊΡΡΡΡΡ ΡΠΈΡ Π² ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΡΡΡΠΌΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π°ΠΌΠ΅Π½Π°
os.path.join()
Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΈ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π½ΡΠΉ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅.ΠΠΎ ΡΡΡΠΈ ΡΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ°Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΡΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ
os
(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ os.mkdir
ΠΈΠ»ΠΈ os.path
) Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠ΅.#path #os
The Python 3 Standard Library by Example (2017)
ΠΠ²ΡΠΎΡ: Doug Hellmann
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Python 3 ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΡΠ½ΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ ΠΈ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΠΌ - Π²ΡΠ΅ ΠΎΠ½ΠΈ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΈ Π³ΠΎΡΠΎΠ²Ρ ΠΊ Π½Π°ΡΠ°Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ²ΡΠΎΡ ΠΊΠ½ΠΈΠ³ΠΈ, ΡΠΊΡΠΏΠ΅ΡΡ ΠΏΠΎ Python, Π·Π½Π°ΠΊΠΎΠΌΠΈΡ ΡΠΈΡΠ°ΡΠ΅Π»Ρ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠ±ΡΠΈΡΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΊΠΎΠ΄Π° ΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ. ΠΠ½ΠΈΠ³Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° ΠΊΠ°ΠΊ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ.
Π‘ΠΊΠ°ΡΠ°ΡΡ ΠΊΠ½ΠΈΠ³Ρ: https://t.me/progbook2/330
ΠΠ²ΡΠΎΡ: Doug Hellmann
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Python 3 ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΡΠ½ΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ ΠΈ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΠΌ - Π²ΡΠ΅ ΠΎΠ½ΠΈ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΈ Π³ΠΎΡΠΎΠ²Ρ ΠΊ Π½Π°ΡΠ°Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ²ΡΠΎΡ ΠΊΠ½ΠΈΠ³ΠΈ, ΡΠΊΡΠΏΠ΅ΡΡ ΠΏΠΎ Python, Π·Π½Π°ΠΊΠΎΠΌΠΈΡ ΡΠΈΡΠ°ΡΠ΅Π»Ρ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠ±ΡΠΈΡΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΊΠΎΠ΄Π° ΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ. ΠΠ½ΠΈΠ³Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° ΠΊΠ°ΠΊ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ.
Π‘ΠΊΠ°ΡΠ°ΡΡ ΠΊΠ½ΠΈΠ³Ρ: https://t.me/progbook2/330
Telegram
ΠΠ½ΠΈΠ³ΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² (reserved)
The Python 3 Standard Library by Example (2017)
ΠΠ²ΡΠΎΡ: Doug Hellmann
ΠΠ²ΡΠΎΡ: Doug Hellmann
coconut - ΠΏΡΠΎΡΡΠΎΠ΅, ΡΠ»Π΅Π³Π°Π½ΡΠ½ΠΎΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python.
https://proglib.io/w/615c97b9
https://proglib.io/w/615c97b9
GitHub
GitHub - evhub/coconut: Simple, elegant, Pythonic functional programming.
Simple, elegant, Pythonic functional programming. Contribute to evhub/coconut development by creating an account on GitHub.
Π’ΡΡΠΎΡΠΈΠ°Π» ΠΏΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Python 3.
https://proglib.io/w/84e89c9a
https://proglib.io/w/84e89c9a
Realpython
Object-Oriented Programming (OOP) in Python 3 β Real Python
In this tutorial, you'll learn all about object-oriented programming (OOP) in Python. You'll learn the basics of the OOP paradigm and cover concepts like classes and inheritance. You'll also see how to instantiate an object from a class.
Π’ΠΎΠΏ 5 ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΏΡΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ Π² Python.
https://proglib.io/w/a92f96c2
https://proglib.io/w/a92f96c2
Medium
Top 5 Mistakes You Make When Declaring Functions in Python
Write better functions
ΠΠ·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠ²ΡΡΡΡ Π² Python 3.9.
https://proglib.io/w/29fdea1a
https://proglib.io/w/29fdea1a
Medium
Take a Look at the Awesome New Features Coming in Python 3.9
The dictionary union operator, generic type annotations, and much more
Advanced Python: ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ.
ΠΠ²ΡΠΎΡ ΡΡΠ°ΡΡΠΈ ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ ΠΏΠΎΡΠ΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠΎΠΊΠΈ, Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π² Python.
https://proglib.io/w/dce340be
ΠΠ²ΡΠΎΡ ΡΡΠ°ΡΡΠΈ ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ ΠΏΠΎΡΠ΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠΎΠΊΠΈ, Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π² Python.
https://proglib.io/w/dce340be
Medium
Advanced Python: Concurrency And Parallelism
Explaining Why, When And How To Use Threads, Async And Multiple Processes In Python
#python python... PYTHON π π
https://github.com/evhub/coconut/blob/master/tests/main_test.py#L140
def rm_path(path):
"""Delete a path."""
if os.path.isdir(path):
shutil.rmtree(path)
elif os.path.isfile(path):
os.remove(path)
def call_python(args, kwargs):
"""Calls the current Python."""
call([sys.executable] + args, kwargs)
@contextmanager
def using_path(path):
"""Removes a path at the beginning and end."""
if os.path.exists(path):
rm_path(path)
try:
yield
finally:
try:
rm_path(path)
except OSError:
logger.display_exc()
@contextmanager
def using_dest():
"""Makes and removes the dest folder."""
try:
os.mkdir(dest)
except Exception:
shutil.rmtree(dest)
os.mkdir(dest)
try:
yield
finally:
try:
rm_path(dest)
except OSError:
logger.display_exc()
@contextmanager
def using_logger():
"""Use a temporary logger, then restore the old logger."""
saved_logger = Logger(logger)
try:
yield
finally:
logger.copy_from(saved_logger)
from coconut.terminal import logger, Logger
def test_pyston(self):
with using_path(pyston):
comp_pyston(["--no-tco"])
if PY2 and PYPY:
run_pyston()
"""Delete a path."""
if os.path.isdir(path):
shutil.rmtree(path)
elif os.path.isfile(path):
os.remove(path)
def call_python(args, kwargs):
"""Calls the current Python."""
call([sys.executable] + args, kwargs)
@contextmanager
def using_path(path):
"""Removes a path at the beginning and end."""
if os.path.exists(path):
rm_path(path)
try:
yield
finally:
try:
rm_path(path)
except OSError:
logger.display_exc()
@contextmanager
def using_dest():
"""Makes and removes the dest folder."""
try:
os.mkdir(dest)
except Exception:
shutil.rmtree(dest)
os.mkdir(dest)
try:
yield
finally:
try:
rm_path(dest)
except OSError:
logger.display_exc()
@contextmanager
def using_logger():
"""Use a temporary logger, then restore the old logger."""
saved_logger = Logger(logger)
try:
yield
finally:
logger.copy_from(saved_logger)
from coconut.terminal import logger, Logger
def test_pyston(self):
with using_path(pyston):
comp_pyston(["--no-tco"])
if PY2 and PYPY:
run_pyston()
#python python... PYTHON π π
https://github.com/evhub/coconut/blob/master/tests/main_test.py#L140
def is_hashable(obj):
"""Determine if obj is hashable."""
try:
hash(obj)
except Exception:
return False
else:
return True
def assert_hashable_or_dict(name, obj):
"""Assert obj is hashable, or for dicts apply recursively to values."""
if isinstance(obj, dict):
for val in obj.values():
assert_hashable_or_dict(name, val)
else:
assert is_hashable(obj), "Constant " + name + " contains unhashable values"
def is_importable(name):
"""Determine if name can be imported."""
try:
import_module(name)
except ImportError:
return False
else:
return True
"""Determine if obj is hashable."""
try:
hash(obj)
except Exception:
return False
else:
return True
def assert_hashable_or_dict(name, obj):
"""Assert obj is hashable, or for dicts apply recursively to values."""
if isinstance(obj, dict):
for val in obj.values():
assert_hashable_or_dict(name, val)
else:
assert is_hashable(obj), "Constant " + name + " contains unhashable values"
def is_importable(name):
"""Determine if name can be imported."""
try:
import_module(name)
except ImportError:
return False
else:
return True
Look what I shared: coconut/exceptions.py at master Β· evhub/coconut Β· GitHub @MIUI| https://github.com/evhub/coconut/blob/master/coconut/exceptions.py
GitHub
evhub/coconut
Simple, elegant, Pythonic functional programming. Contribute to evhub/coconut development by creating an account on GitHub.
#python python... PYTHON π π
Look what I shared: coconut/exceptions.py at master Β· evhub/coconut Β· GitHub @MIUI| https://github.com/evhub/coconut/blob/master/coconut/exceptions.py
#from https://github.com/evhub/coconut/blob/master/coconut/command/util.py
def writefile(openedfile, newcontents):
"""Set the contents of a file."""
openedfile.seek(0)
openedfile.truncate()
openedfile.write(newcontents)
def readfile(openedfile):
"""Read the contents of a file."""
openedfile.seek(0)
return str(openedfile.read())
def writefile(openedfile, newcontents):
"""Set the contents of a file."""
openedfile.seek(0)
openedfile.truncate()
openedfile.write(newcontents)
def readfile(openedfile):
"""Read the contents of a file."""
openedfile.seek(0)
return str(openedfile.read())
GitHub
evhub/coconut
Simple, elegant, Pythonic functional programming. Contribute to evhub/coconut development by creating an account on GitHub.
Using RoboBrowser to Login and Extract Data
Π Π΄Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ΠΎ Π°Π²ΡΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ RoboBrowser, ΠΌΠΎΠ΄ΡΠ»Ρ Python-3 ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ Π²Π΅Π±-Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ.
RoboBrowser - ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Pythonic Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΡΠΌ. ΠΠ½ ΠΏΠΎΡΡΡΠΎΠ΅Π½ ΠΏΠΎΠ²Π΅ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ BeautifulSoup. ΠΠ°ΠΏΠΈΡΠ΅ΠΌ ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΡΡΡ Π² Π²Π΅Π±-ΡΠΎΡΠΌΠ΅ ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎΡΠ»Π΅ Π²Ρ ΠΎΠ΄Π° Π² ΡΠΈΡΡΠ΅ΠΌΡ.
#Π²ΠΈΠ΄Π΅ΠΎΠ΄Π½Ρ
https://www.youtube.com/watch?v=hrdDIrT9kJI
Π Π΄Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ΠΎ Π°Π²ΡΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ RoboBrowser, ΠΌΠΎΠ΄ΡΠ»Ρ Python-3 ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ Π²Π΅Π±-Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ.
RoboBrowser - ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Pythonic Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΡΠΌ. ΠΠ½ ΠΏΠΎΡΡΡΠΎΠ΅Π½ ΠΏΠΎΠ²Π΅ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ BeautifulSoup. ΠΠ°ΠΏΠΈΡΠ΅ΠΌ ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΡΡΡ Π² Π²Π΅Π±-ΡΠΎΡΠΌΠ΅ ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎΡΠ»Π΅ Π²Ρ ΠΎΠ΄Π° Π² ΡΠΈΡΡΠ΅ΠΌΡ.
#Π²ΠΈΠ΄Π΅ΠΎΠ΄Π½Ρ
https://www.youtube.com/watch?v=hrdDIrT9kJI
YouTube
Using RoboBrowser to Login and Extract Data
In this video, we make use of RoboBrowser, a Python-3 module, and web automation tool. We write a quick script that automatically logs into a web form and extracts information on a page, once logged in.
This video is part of a larger series on "Web Scrapingβ¦
This video is part of a larger series on "Web Scrapingβ¦
ΠΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ ΠΈ ΡΠ΅Ρ
Π½ΠΈΠΊΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ
#Π²ΠΈΠ΄Π΅ΠΎΠ΄Π½Ρ
https://prglb.ru/3dqtb
#Π²ΠΈΠ΄Π΅ΠΎΠ΄Π½Ρ
https://prglb.ru/3dqtb
β ββPython Unit Test Automation
ΠΠ²ΡΠΎΡ: Ashwin Pajankar
Π Π½Π°ΡΡΠΎΡΡΠ΅ΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅ΡΡ Ρ ΡΠ½ΠΈΡ-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ°ΠΊΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΊΠ°ΠΊ doctest, unittest, nose, nose2 ΠΈ pytest
#ΠΊΠ½ΠΈΠ³Π°Π΄Π½Ρ
https://t.me/progbook/3696
ΠΠ²ΡΠΎΡ: Ashwin Pajankar
Π Π½Π°ΡΡΠΎΡΡΠ΅ΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅ΡΡ Ρ ΡΠ½ΠΈΡ-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ°ΠΊΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΊΠ°ΠΊ doctest, unittest, nose, nose2 ΠΈ pytest
#ΠΊΠ½ΠΈΠ³Π°Π΄Π½Ρ
https://t.me/progbook/3696
ΠΠ±ΡΡΠΌΠ½Π°Ρ ΡΡΠ°ΡΡΡ ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
https://salmonmode.github.io/2019/03/29/building-good-tests.html
https://salmonmode.github.io/2019/03/29/building-good-tests.html
Chris NeJame
Building Good Tests
A collection of testing maxims, tips, and gotchas, with a few pytest-specific notes. Things to do and not to do when it comes to writing automated tests.
Python for DevOps: Learn Ruthlessly Effective Automation (2019)
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π΄Π΅ΡΡΡΡ Π»Π΅Ρ ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ. Python ΡΡΠ°Π» ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ² Π² ΠΌΠΈΡΠ΅. ΠΡΠ° ΠΊΠ½ΠΈΠ³Π° Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Python Π΄Π»Ρ ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΡΡ Π·Π°Π΄Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Linux Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΠΌΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² DevOps, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Docker, Kubernetes ΠΈ Terraform.
Π‘ΠΊΠ°ΡΠ°ΡΡ ΠΊΠ½ΠΈΠ³Ρ
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π΄Π΅ΡΡΡΡ Π»Π΅Ρ ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ. Python ΡΡΠ°Π» ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ² Π² ΠΌΠΈΡΠ΅. ΠΡΠ° ΠΊΠ½ΠΈΠ³Π° Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Python Π΄Π»Ρ ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΡΡ Π·Π°Π΄Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Linux Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΠΌΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² DevOps, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Docker, Kubernetes ΠΈ Terraform.
Π‘ΠΊΠ°ΡΠ°ΡΡ ΠΊΠ½ΠΈΠ³Ρ
Telegram
ΠΠ½ΠΈΠ³ΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² (reserved)
Python for DevOps: Learn Ruthlessly Effective Automation (2019)
ΠΠ²ΡΠΎΡΡ: Noah Gift, Kennedy Behrman, Alfredo Deza, Grig Gheorghiu
ΠΠ²ΡΠΎΡΡ: Noah Gift, Kennedy Behrman, Alfredo Deza, Grig Gheorghiu
Π ΡΡΠ°ΡΡΠ΅ Π°Π²ΡΠΎΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π² Excel Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python.
https://proglib.io/w/dad84152
https://proglib.io/w/dad84152
Medium
Automate These 3 (Boring!!) Excel Tasks with Python!
No More Opening Hundreds of Excel Files