diff --git a/homeworks/Zakharov Ilya/hw1/.idea/.gitignore b/homeworks/Zakharov Ilya/hw1/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw1/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/homeworks/Zakharov Ilya/hw1/.idea/hw1.iml b/homeworks/Zakharov Ilya/hw1/.idea/hw1.iml
new file mode 100644
index 0000000..d0876a7
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw1/.idea/hw1.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw1/.idea/inspectionProfiles/profiles_settings.xml b/homeworks/Zakharov Ilya/hw1/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw1/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw1/.idea/misc.xml b/homeworks/Zakharov Ilya/hw1/.idea/misc.xml
new file mode 100644
index 0000000..dc9ea49
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw1/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw1/.idea/modules.xml b/homeworks/Zakharov Ilya/hw1/.idea/modules.xml
new file mode 100644
index 0000000..fc3e4a5
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw1/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw1/.idea/vcs.xml b/homeworks/Zakharov Ilya/hw1/.idea/vcs.xml
new file mode 100644
index 0000000..6c0b863
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw1/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw1/main.py b/homeworks/Zakharov Ilya/hw1/main.py
new file mode 100644
index 0000000..8c7379f
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw1/main.py
@@ -0,0 +1,30 @@
+x = int(0)
+answer = input("Какая версия языка сейчас актуальна? ")
+if answer.upper() == 'PYTHON3':
+ print("ответ " + answer + " верен")
+ x = x + 1
+else:
+ print("неверный ответ")
+
+answer = input("Какая кодировка используется в строках? ")
+if answer.upper() == 'UTF8':
+ print("ответ " + answer + " верен")
+ x = x + 1
+else:
+ print("неверный ответ")
+
+answer = input("Какой оператор сравнения нужно использовать для работы с None и bool? ")
+if answer.upper() == 'IS':
+ print("ответ " + answer + " верен")
+ x = x + 1
+else:
+ print("неверный ответ")
+
+answer = input("Сколько значений есть у bool? ")
+if answer.upper() == '2':
+ print("ответ " + answer + " верен")
+ x = x + 1
+else:
+ print("неверный ответ")
+
+print("было дано 4 ответа, правильно из них", x)
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw2/.idea/.gitignore b/homeworks/Zakharov Ilya/hw2/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw2/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/homeworks/Zakharov Ilya/hw2/.idea/hw2.iml b/homeworks/Zakharov Ilya/hw2/.idea/hw2.iml
new file mode 100644
index 0000000..d0876a7
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw2/.idea/hw2.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw2/.idea/inspectionProfiles/profiles_settings.xml b/homeworks/Zakharov Ilya/hw2/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw2/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw2/.idea/misc.xml b/homeworks/Zakharov Ilya/hw2/.idea/misc.xml
new file mode 100644
index 0000000..dc9ea49
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw2/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw2/.idea/modules.xml b/homeworks/Zakharov Ilya/hw2/.idea/modules.xml
new file mode 100644
index 0000000..b3c4100
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw2/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw2/main.py b/homeworks/Zakharov Ilya/hw2/main.py
new file mode 100644
index 0000000..7089673
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw2/main.py
@@ -0,0 +1,29 @@
+class Array(object):
+ def __init__(self, *item):
+ super().__init__()
+ self._data = [*item]
+
+ def append(self, item):
+ self._data.append(item)
+
+ def index(self, obj):
+ if obj in self._data:
+ return(self._data.index(obj))
+ return -1
+
+ def __len__(self):
+ return len(self._data)
+
+
+array0 = Array()
+array1 = Array(7)
+array2 = Array(0, 1, 2)
+array1.append(123)
+array0._data = array1._data + array2._data
+print(array0._data)
+len(array0)
+print(array0.index(123))
+print(array0.index(321))
+for element in array0._data:
+ print(element)
+print(array0._data[1])
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw4/.idea/.gitignore b/homeworks/Zakharov Ilya/hw4/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw4/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/homeworks/Zakharov Ilya/hw4/.idea/hw4.iml b/homeworks/Zakharov Ilya/hw4/.idea/hw4.iml
new file mode 100644
index 0000000..d0876a7
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw4/.idea/hw4.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw4/.idea/inspectionProfiles/profiles_settings.xml b/homeworks/Zakharov Ilya/hw4/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw4/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw4/.idea/misc.xml b/homeworks/Zakharov Ilya/hw4/.idea/misc.xml
new file mode 100644
index 0000000..dc9ea49
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw4/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw4/.idea/modules.xml b/homeworks/Zakharov Ilya/hw4/.idea/modules.xml
new file mode 100644
index 0000000..94ad33c
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw4/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw4/main.py b/homeworks/Zakharov Ilya/hw4/main.py
new file mode 100644
index 0000000..929ae7d
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw4/main.py
@@ -0,0 +1,30 @@
+class ContractError(Exception):
+ def contract(arg_types=None, return_type=None):
+ def func_decorator(func):
+ def check(*args, **kwargs):
+ if arg_types is None:
+ pass
+ else:
+ for i, arg_type in enumerate(arg_types):
+ if type(args[i]) != arg_type:
+ raise ContractError("Ошибка типизации")
+ if args[1] == 0:
+ raise ZeroDivisionError("Ошибка типизации")
+ if return_type is None:
+ pass
+ else:
+ if type(func(*args, **kwargs)) != return_type:
+ raise ContractError("Ошибка типизации")
+ return func(*args, **kwargs)
+
+ return check
+
+ return func_decorator
+ Any = object()
+
+ @contract(arg_types=(float, int), return_type=float)
+ def add_two_numbers(first, second):
+ return first / second
+
+
+print(ContractError.add_two_numbers(3.3, 3))
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw6/.idea/.gitignore b/homeworks/Zakharov Ilya/hw6/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw6/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/homeworks/Zakharov Ilya/hw6/.idea/hw6.iml b/homeworks/Zakharov Ilya/hw6/.idea/hw6.iml
new file mode 100644
index 0000000..d0876a7
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw6/.idea/hw6.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw6/.idea/inspectionProfiles/profiles_settings.xml b/homeworks/Zakharov Ilya/hw6/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw6/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw6/.idea/misc.xml b/homeworks/Zakharov Ilya/hw6/.idea/misc.xml
new file mode 100644
index 0000000..38cfacf
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw6/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw6/.idea/modules.xml b/homeworks/Zakharov Ilya/hw6/.idea/modules.xml
new file mode 100644
index 0000000..165f137
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw6/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw6/.idea/vcs.xml b/homeworks/Zakharov Ilya/hw6/.idea/vcs.xml
new file mode 100644
index 0000000..68e4d82
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw6/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw6/main.py b/homeworks/Zakharov Ilya/hw6/main.py
new file mode 100644
index 0000000..d06c224
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw6/main.py
@@ -0,0 +1,37 @@
+from colorama import Fore
+import pytz
+from datetime import datetime
+import argparse
+from cowpy import cow
+
+
+def main():
+ def animal(text):
+ cheese = cow.DragonAndCow()
+ msg = cheese.milk(text)
+ print(msg)
+
+ def color(text):
+ print(Fore.RED + text)
+
+ def dttime(timezone):
+ ist_time = pytz.timezone(timezone)
+ print(datetime.now(tz=ist_time))
+
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-cs','--cowsay', help="Creates an animal with your text", default=None)
+ parser.add_argument('-hl','--highligh', help="Highlights your text", default=None)
+ parser.add_argument('-tm','--time', help="Shows the time In the selected time zone", default=None,
+ choices=['Europe/Warsaw', 'America/Nuuk', 'America/Vancouver', 'Antarctica/Mawson',
+ 'Atlantic/South_Georgia'])
+ args = parser.parse_args()
+ if args.cowsay != None:
+ animal(args.cowsay)
+ if args.highligh != None:
+ color(args.highligh)
+ if args.time != None:
+ dttime(args.time)
+
+
+if __name__ == '__main__':
+ main()
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw6/poetry.lock b/homeworks/Zakharov Ilya/hw6/poetry.lock
new file mode 100644
index 0000000..254df11
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw6/poetry.lock
@@ -0,0 +1,383 @@
+[[package]]
+name = "argparse"
+version = "1.4.0"
+description = "Python command-line parsing library"
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "certifi"
+version = "2022.9.24"
+description = "Python package for providing Mozilla's CA Bundle."
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[[package]]
+name = "charset-normalizer"
+version = "2.1.1"
+description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
+category = "dev"
+optional = false
+python-versions = ">=3.6.0"
+
+[package.extras]
+unicode-backport = ["unicodedata2"]
+
+[[package]]
+name = "click"
+version = "8.1.3"
+description = "Composable command line interface toolkit"
+category = "dev"
+optional = false
+python-versions = ">=3.7"
+
+[package.dependencies]
+colorama = {version = "*", markers = "platform_system == \"Windows\""}
+
+[[package]]
+name = "colorama"
+version = "0.4.6"
+description = "Cross-platform colored terminal text."
+category = "main"
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
+
+[[package]]
+name = "cowpy"
+version = "1.1.5"
+description = ""
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[[package]]
+name = "datetime"
+version = "4.7"
+description = "This package provides a DateTime data type, as known from Zope. Unless you need to communicate with Zope APIs, you're probably better off using Python's built-in datetime module."
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+pytz = "*"
+"zope.interface" = "*"
+
+[[package]]
+name = "dparse"
+version = "0.6.2"
+description = "A parser for Python dependency files"
+category = "dev"
+optional = false
+python-versions = ">=3.5"
+
+[package.dependencies]
+packaging = "*"
+toml = "*"
+
+[package.extras]
+conda = ["pyyaml"]
+pipenv = ["pipenv"]
+
+[[package]]
+name = "idna"
+version = "3.4"
+description = "Internationalized Domain Names in Applications (IDNA)"
+category = "dev"
+optional = false
+python-versions = ">=3.5"
+
+[[package]]
+name = "packaging"
+version = "21.3"
+description = "Core utilities for Python packages"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+pyparsing = ">=2.0.2,<3.0.5 || >3.0.5"
+
+[[package]]
+name = "pyparsing"
+version = "3.0.9"
+description = "pyparsing module - Classes and methods to define and execute parsing grammars"
+category = "dev"
+optional = false
+python-versions = ">=3.6.8"
+
+[package.extras]
+diagrams = ["jinja2", "railroad-diagrams"]
+
+[[package]]
+name = "pytz"
+version = "2022.5"
+description = "World timezone definitions, modern and historical"
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "requests"
+version = "2.28.1"
+description = "Python HTTP for Humans."
+category = "dev"
+optional = false
+python-versions = ">=3.7, <4"
+
+[package.dependencies]
+certifi = ">=2017.4.17"
+charset-normalizer = ">=2,<3"
+idna = ">=2.5,<4"
+urllib3 = ">=1.21.1,<1.27"
+
+[package.extras]
+socks = ["PySocks (>=1.5.6,!=1.5.7)"]
+use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
+
+[[package]]
+name = "ruamel-yaml"
+version = "0.17.21"
+description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order"
+category = "dev"
+optional = false
+python-versions = ">=3"
+
+[package.dependencies]
+"ruamel.yaml.clib" = {version = ">=0.2.6", markers = "platform_python_implementation == \"CPython\" and python_version < \"3.11\""}
+
+[package.extras]
+docs = ["ryd"]
+jinja2 = ["ruamel.yaml.jinja2 (>=0.2)"]
+
+[[package]]
+name = "ruamel-yaml-clib"
+version = "0.2.7"
+description = "C version of reader, parser and emitter for ruamel.yaml derived from libyaml"
+category = "dev"
+optional = false
+python-versions = ">=3.5"
+
+[[package]]
+name = "safety"
+version = "2.3.1"
+description = "Checks installed dependencies for known vulnerabilities and licenses."
+category = "dev"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+Click = ">=8.0.2"
+dparse = ">=0.6.2"
+packaging = ">=21.0"
+requests = "*"
+"ruamel.yaml" = ">=0.17.21"
+setuptools = ">=19.3"
+
+[package.extras]
+github = ["jinja2 (>=3.1.0)", "pygithub (>=1.43.3)"]
+gitlab = ["python-gitlab (>=1.3.0)"]
+
+[[package]]
+name = "setuptools"
+version = "65.5.0"
+description = "Easily download, build, install, upgrade, and uninstall Python packages"
+category = "main"
+optional = false
+python-versions = ">=3.7"
+
+[package.extras]
+docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"]
+testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mock", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"]
+testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"]
+
+[[package]]
+name = "toml"
+version = "0.10.2"
+description = "Python Library for Tom's Obvious, Minimal Language"
+category = "dev"
+optional = false
+python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
+
+[[package]]
+name = "urllib3"
+version = "1.26.12"
+description = "HTTP library with thread-safe connection pooling, file post, and more."
+category = "dev"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4"
+
+[package.extras]
+brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"]
+secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"]
+socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
+
+[[package]]
+name = "zope-interface"
+version = "5.5.0"
+description = "Interfaces for Python"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[package.dependencies]
+setuptools = "*"
+
+[package.extras]
+docs = ["Sphinx", "repoze.sphinx.autointerface"]
+test = ["coverage (>=5.0.3)", "zope.event", "zope.testing"]
+testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"]
+
+[metadata]
+lock-version = "1.1"
+python-versions = "^3.10"
+content-hash = "0da8e2f622baf4c968699b6f254edc7a1043d6c4d7d0940429a1cc981f777da4"
+
+[metadata.files]
+argparse = [
+ {file = "argparse-1.4.0-py2.py3-none-any.whl", hash = "sha256:c31647edb69fd3d465a847ea3157d37bed1f95f19760b11a47aa91c04b666314"},
+ {file = "argparse-1.4.0.tar.gz", hash = "sha256:62b089a55be1d8949cd2bc7e0df0bddb9e028faefc8c32038cc84862aefdd6e4"},
+]
+certifi = [
+ {file = "certifi-2022.9.24-py3-none-any.whl", hash = "sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382"},
+ {file = "certifi-2022.9.24.tar.gz", hash = "sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14"},
+]
+charset-normalizer = [
+ {file = "charset-normalizer-2.1.1.tar.gz", hash = "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845"},
+ {file = "charset_normalizer-2.1.1-py3-none-any.whl", hash = "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f"},
+]
+click = [
+ {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"},
+ {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"},
+]
+colorama = [
+ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
+ {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
+]
+cowpy = [
+ {file = "cowpy-1.1.5-py3-none-any.whl", hash = "sha256:de5ae7646dd30b4936013666c6bd019af9cf411cc3b377c8538cfd8414262921"},
+ {file = "cowpy-1.1.5.tar.gz", hash = "sha256:089172db1d88c30a2e1b741b18945ee84170bd943a3ca71948e4ae3a3255e554"},
+]
+datetime = [
+ {file = "DateTime-4.7-py2.py3-none-any.whl", hash = "sha256:b8d2d605cfb5fed0da86f9ad64d0973c6f84b21939d49265e135811b33ee8113"},
+ {file = "DateTime-4.7.tar.gz", hash = "sha256:7ff7c4a857f08b73db17a85fc54f102d065ad16e7db0133e699c5f1b37e41478"},
+]
+dparse = [
+ {file = "dparse-0.6.2-py3-none-any.whl", hash = "sha256:8097076f1dd26c377f30d4745e6ec18fef42f3bf493933b842ac5bafad8c345f"},
+ {file = "dparse-0.6.2.tar.gz", hash = "sha256:d45255bda21f998bc7ddf2afd5e62505ba6134756ba2d42a84c56b0826614dfe"},
+]
+idna = [
+ {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"},
+ {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"},
+]
+packaging = [
+ {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"},
+ {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"},
+]
+pyparsing = [
+ {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"},
+ {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"},
+]
+pytz = [
+ {file = "pytz-2022.5-py2.py3-none-any.whl", hash = "sha256:335ab46900b1465e714b4fda4963d87363264eb662aab5e65da039c25f1f5b22"},
+ {file = "pytz-2022.5.tar.gz", hash = "sha256:c4d88f472f54d615e9cd582a5004d1e5f624854a6a27a6211591c251f22a6914"},
+]
+requests = [
+ {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"},
+ {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"},
+]
+ruamel-yaml = [
+ {file = "ruamel.yaml-0.17.21-py3-none-any.whl", hash = "sha256:742b35d3d665023981bd6d16b3d24248ce5df75fdb4e2924e93a05c1f8b61ca7"},
+ {file = "ruamel.yaml-0.17.21.tar.gz", hash = "sha256:8b7ce697a2f212752a35c1ac414471dc16c424c9573be4926b56ff3f5d23b7af"},
+]
+ruamel-yaml-clib = [
+ {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d5859983f26d8cd7bb5c287ef452e8aacc86501487634573d260968f753e1d71"},
+ {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:debc87a9516b237d0466a711b18b6ebeb17ba9f391eb7f91c649c5c4ec5006c7"},
+ {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:df5828871e6648db72d1c19b4bd24819b80a755c4541d3409f0f7acd0f335c80"},
+ {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:efa08d63ef03d079dcae1dfe334f6c8847ba8b645d08df286358b1f5293d24ab"},
+ {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-win32.whl", hash = "sha256:763d65baa3b952479c4e972669f679fe490eee058d5aa85da483ebae2009d231"},
+ {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-win_amd64.whl", hash = "sha256:d000f258cf42fec2b1bbf2863c61d7b8918d31ffee905da62dede869254d3b8a"},
+ {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:045e0626baf1c52e5527bd5db361bc83180faaba2ff586e763d3d5982a876a9e"},
+ {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-macosx_12_6_arm64.whl", hash = "sha256:721bc4ba4525f53f6a611ec0967bdcee61b31df5a56801281027a3a6d1c2daf5"},
+ {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:4b3a93bb9bc662fc1f99c5c3ea8e623d8b23ad22f861eb6fce9377ac07ad6072"},
+ {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-macosx_12_0_arm64.whl", hash = "sha256:a234a20ae07e8469da311e182e70ef6b199d0fbeb6c6cc2901204dd87fb867e8"},
+ {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:15910ef4f3e537eea7fe45f8a5d19997479940d9196f357152a09031c5be59f3"},
+ {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:370445fd795706fd291ab00c9df38a0caed0f17a6fb46b0f607668ecb16ce763"},
+ {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-win32.whl", hash = "sha256:ecdf1a604009bd35c674b9225a8fa609e0282d9b896c03dd441a91e5f53b534e"},
+ {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-win_amd64.whl", hash = "sha256:f34019dced51047d6f70cb9383b2ae2853b7fc4dce65129a5acd49f4f9256646"},
+ {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2aa261c29a5545adfef9296b7e33941f46aa5bbd21164228e833412af4c9c75f"},
+ {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-macosx_12_0_arm64.whl", hash = "sha256:f01da5790e95815eb5a8a138508c01c758e5f5bc0ce4286c4f7028b8dd7ac3d0"},
+ {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:40d030e2329ce5286d6b231b8726959ebbe0404c92f0a578c0e2482182e38282"},
+ {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:c3ca1fbba4ae962521e5eb66d72998b51f0f4d0f608d3c0347a48e1af262efa7"},
+ {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-win32.whl", hash = "sha256:7bdb4c06b063f6fd55e472e201317a3bb6cdeeee5d5a38512ea5c01e1acbdd93"},
+ {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-win_amd64.whl", hash = "sha256:be2a7ad8fd8f7442b24323d24ba0b56c51219513cfa45b9ada3b87b76c374d4b"},
+ {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:91a789b4aa0097b78c93e3dc4b40040ba55bef518f84a40d4442f713b4094acb"},
+ {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:99e77daab5d13a48a4054803d052ff40780278240a902b880dd37a51ba01a307"},
+ {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:3243f48ecd450eddadc2d11b5feb08aca941b5cd98c9b1db14b2fd128be8c697"},
+ {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:8831a2cedcd0f0927f788c5bdf6567d9dc9cc235646a434986a852af1cb54b4b"},
+ {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-win32.whl", hash = "sha256:3110a99e0f94a4a3470ff67fc20d3f96c25b13d24c6980ff841e82bafe827cac"},
+ {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-win_amd64.whl", hash = "sha256:92460ce908546ab69770b2e576e4f99fbb4ce6ab4b245345a3869a0a0410488f"},
+ {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5bc0667c1eb8f83a3752b71b9c4ba55ef7c7058ae57022dd9b29065186a113d9"},
+ {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:4a4d8d417868d68b979076a9be6a38c676eca060785abaa6709c7b31593c35d1"},
+ {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:bf9a6bc4a0221538b1a7de3ed7bca4c93c02346853f44e1cd764be0023cd3640"},
+ {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:a7b301ff08055d73223058b5c46c55638917f04d21577c95e00e0c4d79201a6b"},
+ {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-win32.whl", hash = "sha256:d5e51e2901ec2366b79f16c2299a03e74ba4531ddcfacc1416639c557aef0ad8"},
+ {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-win_amd64.whl", hash = "sha256:184faeaec61dbaa3cace407cffc5819f7b977e75360e8d5ca19461cd851a5fc5"},
+ {file = "ruamel.yaml.clib-0.2.7.tar.gz", hash = "sha256:1f08fd5a2bea9c4180db71678e850b995d2a5f4537be0e94557668cf0f5f9497"},
+]
+safety = [
+ {file = "safety-2.3.1-py3-none-any.whl", hash = "sha256:8f098d12b607db2756886280e85c28ece8db1bba4f45fc5f981f4663217bd619"},
+ {file = "safety-2.3.1.tar.gz", hash = "sha256:6e6fcb7d4e8321098cf289f59b65051cafd3467f089c6e57c9f894ae32c23b71"},
+]
+setuptools = [
+ {file = "setuptools-65.5.0-py3-none-any.whl", hash = "sha256:f62ea9da9ed6289bfe868cd6845968a2c854d1427f8548d52cae02a42b4f0356"},
+ {file = "setuptools-65.5.0.tar.gz", hash = "sha256:512e5536220e38146176efb833d4a62aa726b7bbff82cfbc8ba9eaa3996e0b17"},
+]
+toml = [
+ {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"},
+ {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"},
+]
+urllib3 = [
+ {file = "urllib3-1.26.12-py2.py3-none-any.whl", hash = "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997"},
+ {file = "urllib3-1.26.12.tar.gz", hash = "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e"},
+]
+zope-interface = [
+ {file = "zope.interface-5.5.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:2cb3003941f5f4fa577479ac6d5db2b940acb600096dd9ea9bf07007f5cab46f"},
+ {file = "zope.interface-5.5.0-cp27-cp27m-win32.whl", hash = "sha256:8c791f4c203ccdbcda588ea4c8a6e4353e10435ea48ddd3d8734a26fe9714cba"},
+ {file = "zope.interface-5.5.0-cp27-cp27m-win_amd64.whl", hash = "sha256:3eedf3d04179774d750e8bb4463e6da350956a50ed44d7b86098e452d7ec385e"},
+ {file = "zope.interface-5.5.0-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:58a66c2020a347973168a4a9d64317bac52f9fdfd3e6b80b252be30da881a64e"},
+ {file = "zope.interface-5.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da7912ae76e1df6a1fb841b619110b1be4c86dfb36699d7fd2f177105cdea885"},
+ {file = "zope.interface-5.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:423c074e404f13e6fa07f4454f47fdbb38d358be22945bc812b94289d9142374"},
+ {file = "zope.interface-5.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7bdcec93f152e0e1942102537eed7b166d6661ae57835b20a52a2a3d6a3e1bf3"},
+ {file = "zope.interface-5.5.0-cp310-cp310-win32.whl", hash = "sha256:03f5ae315db0d0de668125d983e2a819a554f3fdb2d53b7e934e3eb3c3c7375d"},
+ {file = "zope.interface-5.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:8b9f153208d74ccfa25449a0c6cb756ab792ce0dc99d9d771d935f039b38740c"},
+ {file = "zope.interface-5.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aeac590cce44e68ee8ad0b8ecf4d7bf15801f102d564ca1b0eb1f12f584ee656"},
+ {file = "zope.interface-5.5.0-cp35-cp35m-win32.whl", hash = "sha256:7d9ec1e6694af39b687045712a8ad14ddcb568670d5eb1b66b48b98b9312afba"},
+ {file = "zope.interface-5.5.0-cp35-cp35m-win_amd64.whl", hash = "sha256:d18fb0f6c8169d26044128a2e7d3c39377a8a151c564e87b875d379dbafd3930"},
+ {file = "zope.interface-5.5.0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:0eb2b3e84f48dd9cfc8621c80fba905d7e228615c67f76c7df7c716065669bb6"},
+ {file = "zope.interface-5.5.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df6593e150d13cfcce69b0aec5df7bc248cb91e4258a7374c129bb6d56b4e5ca"},
+ {file = "zope.interface-5.5.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9dc4493aa3d87591e3d2bf1453e25b98038c839ca8e499df3d7106631b66fe83"},
+ {file = "zope.interface-5.5.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5c6023ae7defd052cf76986ce77922177b0c2f3913bea31b5b28fbdf6cb7099e"},
+ {file = "zope.interface-5.5.0-cp36-cp36m-win32.whl", hash = "sha256:a69c28d85bb7cf557751a5214cb3f657b2b035c8c96d71080c1253b75b79b69b"},
+ {file = "zope.interface-5.5.0-cp36-cp36m-win_amd64.whl", hash = "sha256:85dd6dd9aaae7a176948d8bb62e20e2968588fd787c29c5d0d964ab475168d3d"},
+ {file = "zope.interface-5.5.0-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:970661ece2029915b8f7f70892e88404340fbdefd64728380cad41c8dce14ff4"},
+ {file = "zope.interface-5.5.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e3495bb0cdcea212154e558082c256f11b18031f05193ae2fb85d048848db14"},
+ {file = "zope.interface-5.5.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:3f68404edb1a4fb6aa8a94675521ca26c83ebbdbb90e894f749ae0dc4ca98418"},
+ {file = "zope.interface-5.5.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:740f3c1b44380658777669bcc42f650f5348e53797f2cee0d93dc9b0f9d7cc69"},
+ {file = "zope.interface-5.5.0-cp37-cp37m-win32.whl", hash = "sha256:006f8dd81fae28027fc28ada214855166712bf4f0bfbc5a8788f9b70982b9437"},
+ {file = "zope.interface-5.5.0-cp37-cp37m-win_amd64.whl", hash = "sha256:43490ad65d4c64e45a30e51a2beb7a6b63e1ff395302ad22392224eb618476d6"},
+ {file = "zope.interface-5.5.0-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:f70726b60009433111fe9928f5d89cbb18962411d33c45fb19eb81b9bbd26fcd"},
+ {file = "zope.interface-5.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfa614d049667bed1c737435c609c0956c5dc0dbafdc1145ee7935e4658582cb"},
+ {file = "zope.interface-5.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:58a975f89e4584d0223ab813c5ba4787064c68feef4b30d600f5e01de90ae9ce"},
+ {file = "zope.interface-5.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:37ec9ade9902f412cc7e7a32d71f79dec3035bad9bd0170226252eed88763c48"},
+ {file = "zope.interface-5.5.0-cp38-cp38-win32.whl", hash = "sha256:be11fce0e6af6c0e8d93c10ef17b25aa7c4acb7ec644bff2596c0d639c49e20f"},
+ {file = "zope.interface-5.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:cbbf83914b9a883ab324f728de869f4e406e0cbcd92df7e0a88decf6f9ab7d5a"},
+ {file = "zope.interface-5.5.0-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:26c1456520fdcafecc5765bec4783eeafd2e893eabc636908f50ee31fe5c738c"},
+ {file = "zope.interface-5.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47ff078734a1030c48103422a99e71a7662d20258c00306546441adf689416f7"},
+ {file = "zope.interface-5.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:687cab7f9ae18d2c146f315d0ca81e5ffe89a139b88277afa70d52f632515854"},
+ {file = "zope.interface-5.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d80f6236b57a95eb19d5e47eb68d0296119e1eff6deaa2971ab8abe3af918420"},
+ {file = "zope.interface-5.5.0-cp39-cp39-win32.whl", hash = "sha256:9cdc4e898d3b1547d018829fd4a9f403e52e51bba24be0fbfa37f3174e1ef797"},
+ {file = "zope.interface-5.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:6566b3d2657e7609cd8751bcb1eab1202b1692a7af223035a5887d64bb3a2f3b"},
+ {file = "zope.interface-5.5.0.tar.gz", hash = "sha256:700ebf9662cf8df70e2f0cb4988e078c53f65ee3eefd5c9d80cf988c4175c8e3"},
+]
diff --git a/homeworks/Zakharov Ilya/hw6/pyproject.toml b/homeworks/Zakharov Ilya/hw6/pyproject.toml
new file mode 100644
index 0000000..b8df4ef
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw6/pyproject.toml
@@ -0,0 +1,22 @@
+[tool.poetry]
+name = "pack"
+version = "0.1.0"
+description = ""
+authors = ["AirRomantic "]
+readme = "README.md"
+
+[tool.poetry.dependencies]
+python = "^3.10"
+colorama = "^0.4.6"
+cowpy = "^1.1.5"
+pytz = "^2022.5"
+argparse = "^1.4.0"
+datetime = "^4.7"
+
+
+[tool.poetry.group.dev.dependencies]
+safety = "^2.3.1"
+
+[build-system]
+requires = ["poetry-core"]
+build-backend = "poetry.core.masonry.api"
diff --git a/homeworks/Zakharov Ilya/hw6/setup.py b/homeworks/Zakharov Ilya/hw6/setup.py
new file mode 100644
index 0000000..b965923
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw6/setup.py
@@ -0,0 +1,10 @@
+from setuptools import setup
+
+setup(
+ name='my-awesome-scipt',
+ entry_points={
+ 'console_scripts': [
+ 'my-awesome-scipt = main:main',
+ ],
+ }
+)
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw7/.idea/.gitignore b/homeworks/Zakharov Ilya/hw7/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw7/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/homeworks/Zakharov Ilya/hw7/.idea/.name b/homeworks/Zakharov Ilya/hw7/.idea/.name
new file mode 100644
index 0000000..4420514
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw7/.idea/.name
@@ -0,0 +1 @@
+HW7
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw7/.idea/HW7.iml b/homeworks/Zakharov Ilya/hw7/.idea/HW7.iml
new file mode 100644
index 0000000..d0876a7
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw7/.idea/HW7.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw7/.idea/inspectionProfiles/profiles_settings.xml b/homeworks/Zakharov Ilya/hw7/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw7/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw7/.idea/misc.xml b/homeworks/Zakharov Ilya/hw7/.idea/misc.xml
new file mode 100644
index 0000000..38cfacf
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw7/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw7/.idea/modules.xml b/homeworks/Zakharov Ilya/hw7/.idea/modules.xml
new file mode 100644
index 0000000..072fc53
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw7/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw7/.idea/vcs.xml b/homeworks/Zakharov Ilya/hw7/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw7/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw7/data.csv b/homeworks/Zakharov Ilya/hw7/data.csv
new file mode 100644
index 0000000..16630b5
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw7/data.csv
@@ -0,0 +1,3 @@
+Shanna@melissa.tv
+Julianne.OConner@kory.org
+Telly.Hoeger@billy.biz
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw7/main.py b/homeworks/Zakharov Ilya/hw7/main.py
new file mode 100644
index 0000000..071e0cf
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw7/main.py
@@ -0,0 +1,93 @@
+import csv
+import requests
+import json
+import xml.etree.ElementTree as ET
+from loguru import logger
+import datetime as dt
+import os
+
+@logger.catch
+def openpars(link, filik):
+ dtn = dt.datetime.now()
+ res = requests.get(link)
+ logger.info('lead time to {site} is {time}',site=link, time=dt.datetime.now() - dtn)
+ mylist = []
+ obj = json.loads(res.text)
+ # Спросить у преподователя насчёт open
+ with open(filik) as file:
+ reader = csv.reader(file)
+ for row in reader:
+ for modul in obj:
+ if row[0] == modul['email']:
+ mydatadict = {}
+ mydatadict['id'] = modul['id']
+ mydatadict['email'] = row[0]
+ mylist.append(mydatadict)
+ logger.info('number of users {}', len(mylist))
+ return mylist
+@logger.catch
+def parsingsite(link, Attribute, list):
+ mylist = []
+ dtn = dt.datetime.now()
+ row = requests.get(link)
+ logger.info('lead time to {site} is {time}',site=link, time=dt.datetime.now() - dtn)
+ objlink = json.loads(row.text)
+ for modul in objlink:
+ for i in list:
+ if i['id'] == modul['id']:
+ logger.info('Starts parsing for {email} in {site}', email=i['email'], site=link)
+ i[Attribute] = modul
+ mylist.append(i)
+ return mylist
+@logger.catch
+def genetratexml(fileName, dict):
+ trunk = ET.Element('User')
+ ET.SubElement(trunk, 'id').text = f"{dict['id']}"
+ ET.SubElement(trunk, 'email').text = f"{dict['email']}"
+ posts0 = ET.SubElement(trunk, 'posts')
+ if 'posts' in dict:
+ posts = ET.SubElement(posts0, 'post')
+ dictposts = dict['posts']
+ ET.SubElement(posts, 'id').text = f"{dictposts['id']}"
+ ET.SubElement(posts, 'title').text = f"{dictposts['title']}"
+ ET.SubElement(posts, 'body').text = f"{dictposts['body']}"
+ else:
+ posts0.text = ' '
+ albums0 = ET.SubElement(trunk, 'albums')
+ if 'albums' in dict:
+ albums = ET.SubElement(albums0, 'album')
+ dictalbums = dict['albums']
+ ET.SubElement(albums, 'id').text = f"{dictalbums['id']}"
+ ET.SubElement(albums, 'title').text = f"{dictalbums['title']}"
+ else:
+ albums0.text = ' '
+ todos0 = ET.SubElement(trunk, 'todos')
+ if 'todos' in dict:
+ todos = ET.SubElement(todos0, 'todo')
+ dicttodos = dict['todos']
+ ET.SubElement(todos, 'id').text = f"{dicttodos['id']}"
+ ET.SubElement(todos, 'title').text = f"{dicttodos['title']}"
+ ET.SubElement(todos, 'completed').text = f"{dicttodos['completed']}"
+ else:
+ todos0.text = ' '
+ tree = ET.ElementTree(trunk)
+ with open(fileName, 'wb') as file:
+ ET.indent(tree, space="\t", level=0)
+ tree.write(file)
+ os.replace(fileName, f"Users/{fileName}")
+
+
+
+if __name__ == '__main__':
+ myfistlist = openpars('https://jsonplaceholder.typicode.com/users/', 'data.csv')
+ parsingsite('https://jsonplaceholder.typicode.com/users/1/posts', 'posts', myfistlist)
+ parsingsite('https://jsonplaceholder.typicode.com/users/1/albums', 'albums', myfistlist)
+ parsingsite('https://jsonplaceholder.typicode.com/users/1/todos', 'todos', myfistlist)
+ if not os.path.isdir('users'):
+ os.mkdir('users')
+ for mydict in myfistlist:
+ genetratexml(f"{mydict['id']}.xml", mydict)
+
+
+
+
diff --git a/homeworks/Zakharov Ilya/hw7/poetry.lock b/homeworks/Zakharov Ilya/hw7/poetry.lock
new file mode 100644
index 0000000..44daa8d
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw7/poetry.lock
@@ -0,0 +1,64 @@
+[[package]]
+name = "colorama"
+version = "0.4.6"
+description = "Cross-platform colored terminal text."
+category = "main"
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
+
+[[package]]
+name = "cowpy"
+version = "1.1.5"
+description = ""
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[[package]]
+name = "loguru"
+version = "0.6.0"
+description = "Python logging made (stupidly) simple"
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[package.dependencies]
+colorama = {version = ">=0.3.4", markers = "sys_platform == \"win32\""}
+win32-setctime = {version = ">=1.0.0", markers = "sys_platform == \"win32\""}
+
+[package.extras]
+dev = ["Sphinx (>=4.1.1)", "black (>=19.10b0)", "colorama (>=0.3.4)", "docutils (==0.16)", "flake8 (>=3.7.7)", "isort (>=5.1.1)", "pytest (>=4.6.2)", "pytest-cov (>=2.7.1)", "sphinx-autobuild (>=0.7.1)", "sphinx-rtd-theme (>=0.4.3)", "tox (>=3.9.0)"]
+
+[[package]]
+name = "win32-setctime"
+version = "1.1.0"
+description = "A small Python utility to set file creation time on Windows"
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[package.extras]
+dev = ["black (>=19.3b0)", "pytest (>=4.6.2)"]
+
+[metadata]
+lock-version = "1.1"
+python-versions = "^3.10"
+content-hash = "0a9008086113283a229c418e7de69dd0469d7629cf20650006a4b288f6021ac2"
+
+[metadata.files]
+colorama = [
+ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
+ {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
+]
+cowpy = [
+ {file = "cowpy-1.1.5-py3-none-any.whl", hash = "sha256:de5ae7646dd30b4936013666c6bd019af9cf411cc3b377c8538cfd8414262921"},
+ {file = "cowpy-1.1.5.tar.gz", hash = "sha256:089172db1d88c30a2e1b741b18945ee84170bd943a3ca71948e4ae3a3255e554"},
+]
+loguru = [
+ {file = "loguru-0.6.0-py3-none-any.whl", hash = "sha256:4e2414d534a2ab57573365b3e6d0234dfb1d84b68b7f3b948e6fb743860a77c3"},
+ {file = "loguru-0.6.0.tar.gz", hash = "sha256:066bd06758d0a513e9836fd9c6b5a75bfb3fd36841f4b996bc60b547a309d41c"},
+]
+win32-setctime = [
+ {file = "win32_setctime-1.1.0-py3-none-any.whl", hash = "sha256:231db239e959c2fe7eb1d7dc129f11172354f98361c4fa2d6d2d7e278baa8aad"},
+ {file = "win32_setctime-1.1.0.tar.gz", hash = "sha256:15cf5750465118d6929ae4de4eb46e8edae9a5634350c01ba582df868e932cb2"},
+]
diff --git a/homeworks/Zakharov Ilya/hw7/pyproject.toml b/homeworks/Zakharov Ilya/hw7/pyproject.toml
new file mode 100644
index 0000000..44ae93e
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw7/pyproject.toml
@@ -0,0 +1,16 @@
+[tool.poetry]
+name = "testt"
+version = "0.1.0"
+description = ""
+authors = ["AirRomantic "]
+readme = "README.md"
+
+[tool.poetry.dependencies]
+python = "^3.10"
+loguru = "^0.6.0"
+cowpy = "^1.1.5"
+
+
+[build-system]
+requires = ["poetry-core"]
+build-backend = "poetry.core.masonry.api"
diff --git a/homeworks/Zakharov Ilya/hw7/users/2.xml b/homeworks/Zakharov Ilya/hw7/users/2.xml
new file mode 100644
index 0000000..a52ee0c
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw7/users/2.xml
@@ -0,0 +1,27 @@
+
+ 2
+ Shanna@melissa.tv
+
+
+ 2
+ qui est esse
+ est rerum tempore vitae
+sequi sint nihil reprehenderit dolor beatae ea dolores neque
+fugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis
+qui aperiam non debitis possimus qui neque nisi nulla
+
+
+
+
+ 2
+ sunt qui excepturi placeat culpa
+
+
+
+
+ 2
+ quis ut nam facilis et officia qui
+ False
+
+
+
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw7/users/4.xml b/homeworks/Zakharov Ilya/hw7/users/4.xml
new file mode 100644
index 0000000..608276f
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw7/users/4.xml
@@ -0,0 +1,27 @@
+
+ 4
+ Julianne.OConner@kory.org
+
+
+ 4
+ eum et est occaecati
+ ullam et saepe reiciendis voluptatem adipisci
+sit amet autem assumenda provident rerum culpa
+quis hic commodi nesciunt rem tenetur doloremque ipsam iure
+quis sunt voluptatem rerum illo velit
+
+
+
+
+ 4
+ non esse culpa molestiae omnis sed optio
+
+
+
+
+ 4
+ et porro tempora
+ True
+
+
+
\ No newline at end of file
diff --git a/homeworks/Zakharov Ilya/hw7/users/7.xml b/homeworks/Zakharov Ilya/hw7/users/7.xml
new file mode 100644
index 0000000..2f71941
--- /dev/null
+++ b/homeworks/Zakharov Ilya/hw7/users/7.xml
@@ -0,0 +1,27 @@
+
+ 7
+ Telly.Hoeger@billy.biz
+
+
+ 7
+ magnam facilis autem
+ dolore placeat quibusdam ea quo vitae
+magni quis enim qui quis quo nemo aut saepe
+quidem repellat excepturi ut quia
+sunt ut sequi eos ea sed quas
+
+
+
+
+ 7
+ quibusdam autem aliquid et et quia
+
+
+
+
+ 7
+ illo expedita consequatur quia in
+ False
+
+
+
\ No newline at end of file