fishertools 0.2.1__py3-none-any.whl → 0.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. fishertools/__init__.py +16 -5
  2. fishertools/errors/__init__.py +11 -3
  3. fishertools/errors/exception_types.py +282 -0
  4. fishertools/errors/explainer.py +87 -1
  5. fishertools/errors/models.py +73 -1
  6. fishertools/errors/patterns.py +40 -0
  7. fishertools/examples/cli_example.py +156 -0
  8. fishertools/examples/learn_example.py +65 -0
  9. fishertools/examples/logger_example.py +176 -0
  10. fishertools/examples/menu_example.py +101 -0
  11. fishertools/examples/storage_example.py +175 -0
  12. fishertools/input_utils.py +185 -0
  13. fishertools/learn/__init__.py +19 -2
  14. fishertools/learn/examples.py +88 -1
  15. fishertools/learn/knowledge_engine.py +321 -0
  16. fishertools/learn/repl/__init__.py +19 -0
  17. fishertools/learn/repl/cli.py +31 -0
  18. fishertools/learn/repl/code_sandbox.py +229 -0
  19. fishertools/learn/repl/command_handler.py +544 -0
  20. fishertools/learn/repl/command_parser.py +165 -0
  21. fishertools/learn/repl/engine.py +479 -0
  22. fishertools/learn/repl/models.py +121 -0
  23. fishertools/learn/repl/session_manager.py +284 -0
  24. fishertools/learn/repl/test_code_sandbox.py +261 -0
  25. fishertools/learn/repl/test_code_sandbox_pbt.py +148 -0
  26. fishertools/learn/repl/test_command_handler.py +224 -0
  27. fishertools/learn/repl/test_command_handler_pbt.py +189 -0
  28. fishertools/learn/repl/test_command_parser.py +160 -0
  29. fishertools/learn/repl/test_command_parser_pbt.py +100 -0
  30. fishertools/learn/repl/test_engine.py +190 -0
  31. fishertools/learn/repl/test_session_manager.py +310 -0
  32. fishertools/learn/repl/test_session_manager_pbt.py +182 -0
  33. fishertools/learn/test_knowledge_engine.py +241 -0
  34. fishertools/learn/test_knowledge_engine_pbt.py +180 -0
  35. fishertools/patterns/__init__.py +46 -0
  36. fishertools/patterns/cli.py +175 -0
  37. fishertools/patterns/logger.py +140 -0
  38. fishertools/patterns/menu.py +99 -0
  39. fishertools/patterns/storage.py +127 -0
  40. fishertools/readme_transformer.py +631 -0
  41. fishertools/safe/__init__.py +6 -1
  42. fishertools/safe/files.py +329 -1
  43. fishertools/transform_readme.py +105 -0
  44. fishertools-0.4.0.dist-info/METADATA +104 -0
  45. fishertools-0.4.0.dist-info/RECORD +131 -0
  46. {fishertools-0.2.1.dist-info → fishertools-0.4.0.dist-info}/WHEEL +1 -1
  47. tests/test_documentation_properties.py +329 -0
  48. tests/test_documentation_structure.py +349 -0
  49. tests/test_errors/test_exception_types.py +446 -0
  50. tests/test_errors/test_exception_types_pbt.py +333 -0
  51. tests/test_errors/test_patterns.py +52 -0
  52. tests/test_input_utils/__init__.py +1 -0
  53. tests/test_input_utils/test_input_utils.py +65 -0
  54. tests/test_learn/test_examples.py +179 -1
  55. tests/test_learn/test_explain_properties.py +307 -0
  56. tests/test_patterns_cli.py +611 -0
  57. tests/test_patterns_docstrings.py +473 -0
  58. tests/test_patterns_logger.py +465 -0
  59. tests/test_patterns_menu.py +440 -0
  60. tests/test_patterns_storage.py +447 -0
  61. tests/test_readme_enhancements_v0_3_1.py +2036 -0
  62. tests/test_readme_transformer/__init__.py +1 -0
  63. tests/test_readme_transformer/test_readme_infrastructure.py +1023 -0
  64. tests/test_readme_transformer/test_transform_readme_integration.py +431 -0
  65. tests/test_safe/test_files.py +726 -1
  66. fishertools-0.2.1.dist-info/METADATA +0 -256
  67. fishertools-0.2.1.dist-info/RECORD +0 -81
  68. {fishertools-0.2.1.dist-info → fishertools-0.4.0.dist-info}/licenses/LICENSE +0 -0
  69. {fishertools-0.2.1.dist-info → fishertools-0.4.0.dist-info}/top_level.txt +0 -0
@@ -1,256 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: fishertools
3
- Version: 0.2.1
4
- Summary: Fishertools - инструменты, которые делают Python удобнее и безопаснее для новичков
5
- Home-page: https://github.com/f1sherFM/My_1st_library_python
6
- Author: f1sherFM
7
- Author-email: f1sherFM <kirillka229top@gmail.com>
8
- License: MIT
9
- Project-URL: Homepage, https://github.com/f1sherFM/My_1st_library_python
10
- Project-URL: Repository, https://github.com/f1sherFM/My_1st_library_python
11
- Project-URL: Issues, https://github.com/f1sherFM/My_1st_library_python/issues
12
- Classifier: Development Status :: 3 - Alpha
13
- Classifier: Intended Audience :: Developers
14
- Classifier: License :: OSI Approved :: MIT License
15
- Classifier: Operating System :: OS Independent
16
- Classifier: Programming Language :: Python :: 3
17
- Classifier: Programming Language :: Python :: 3.8
18
- Classifier: Programming Language :: Python :: 3.9
19
- Classifier: Programming Language :: Python :: 3.10
20
- Classifier: Programming Language :: Python :: 3.11
21
- Classifier: Programming Language :: Python :: 3.12
22
- Classifier: Programming Language :: Python :: 3.13
23
- Classifier: Programming Language :: Python :: 3.14
24
- Requires-Python: >=3.8
25
- Description-Content-Type: text/markdown
26
- License-File: LICENSE
27
- Requires-Dist: requests>=2.25.0
28
- Requires-Dist: click>=8.0.0
29
- Provides-Extra: dev
30
- Requires-Dist: pytest>=8.0.0; extra == "dev"
31
- Requires-Dist: hypothesis>=6.0.0; extra == "dev"
32
- Requires-Dist: black>=24.0.0; extra == "dev"
33
- Requires-Dist: ruff>=0.1.0; extra == "dev"
34
- Requires-Dist: mypy>=1.8.0; extra == "dev"
35
- Dynamic: author
36
- Dynamic: home-page
37
- Dynamic: license-file
38
- Dynamic: requires-python
39
-
40
- # Fishertools
41
-
42
- **Инструменты, которые делают Python удобнее и безопаснее для новичков**
43
-
44
- Fishertools - это Python библиотека, созданная специально для начинающих разработчиков. Она предоставляет понятные объяснения ошибок, безопасные утилиты и обучающие инструменты.
45
-
46
- ## 🎯 Основные возможности
47
-
48
- ### 🚨 Объяснение ошибок Python
49
- Получайте понятные объяснения ошибок на русском языке с советами по исправлению:
50
-
51
- ```python
52
- from fishertools import explain_error
53
-
54
- try:
55
- numbers = [1, 2, 3]
56
- print(numbers[10])
57
- except Exception as e:
58
- explain_error(e)
59
- ```
60
-
61
- **Вывод:**
62
- ```
63
- 🚨 Ошибка Python: IndexError
64
-
65
- ═══ Сообщение об ошибке ═══
66
- list index out of range
67
-
68
- ═══ Что это означает ═══
69
- Вы пытаетесь получить элемент списка по индексу, которого не существует.
70
- Индексы в Python начинаются с 0, а максимальный индекс равен длине списка минус 1.
71
-
72
- ═══ Как исправить ═══
73
- Проверьте длину списка перед обращением к элементу или используйте
74
- безопасные методы получения элементов.
75
-
76
- ═══ Пример ═══
77
- ┌─ Правильный код ─┐
78
- numbers = [1, 2, 3]
79
- if len(numbers) > 10:
80
- print(numbers[10])
81
- else:
82
- print("Индекс слишком большой!")
83
- └───────────────────┘
84
- ```
85
-
86
- ### 🛡️ Безопасные утилиты
87
- Функции, которые предотвращают типичные ошибки новичков:
88
-
89
- ```python
90
- from fishertools.safe import safe_get, safe_divide, safe_read_file
91
-
92
- # Безопасное получение элемента
93
- numbers = [1, 2, 3]
94
- result = safe_get(numbers, 10, "не найден") # "не найден"
95
-
96
- # Безопасное деление
97
- result = safe_divide(10, 0, 0) # 0 вместо ошибки
98
-
99
- # Безопасное чтение файла
100
- content = safe_read_file("file.txt", default="файл не найден")
101
- ```
102
-
103
- ### 📚 Обучающие инструменты
104
- Изучайте Python на примерах и лучших практиках:
105
-
106
- ```python
107
- from fishertools.learn import show_best_practice, generate_example
108
-
109
- # Показать лучшие практики
110
- show_best_practice("variables")
111
-
112
- # Сгенерировать пример кода
113
- example = generate_example("functions")
114
- print(example)
115
- ```
116
-
117
- ### 🔄 Обратная совместимость
118
- Все полезные функции из предыдущих версий сохранены:
119
-
120
- ```python
121
- from fishertools.legacy import hash_string, generate_password, QuickConfig
122
-
123
- # Старые функции работают как прежде
124
- password = generate_password(12)
125
- hash_value = hash_string("my_string")
126
- config = QuickConfig({"debug": True})
127
- ```
128
-
129
- ## 📦 Установка
130
-
131
- ```bash
132
- pip install fishertools
133
- ```
134
-
135
- Или из исходников:
136
- ```bash
137
- git clone https://github.com/f1sherFM/My_1st_library_python.git
138
- cd My_1st_library_python
139
- pip install -e .
140
- ```
141
-
142
- ## 🚀 Быстрый старт
143
-
144
- ```python
145
- from fishertools import explain_error
146
-
147
- # Основная функция - объяснение ошибок
148
- try:
149
- result = 10 / 0
150
- except Exception as e:
151
- explain_error(e)
152
-
153
- # Безопасные утилиты
154
- from fishertools.safe import safe_get, safe_divide
155
- safe_result = safe_get([1, 2, 3], 5, "default")
156
-
157
- # Обучающие инструменты
158
- from fishertools.learn import show_best_practice
159
- show_best_practice("functions")
160
- ```
161
-
162
- ## 📖 Документация
163
-
164
- ### Поддерживаемые типы ошибок
165
-
166
- Fishertools объясняет следующие типы ошибок Python:
167
-
168
- - **TypeError** - ошибки типов данных
169
- - **ValueError** - неправильные значения
170
- - **AttributeError** - отсутствующие атрибуты
171
- - **IndexError** - выход за границы списка
172
- - **KeyError** - отсутствующие ключи словаря
173
- - **ImportError** - проблемы с импортом модулей
174
- - **SyntaxError** - синтаксические ошибки
175
-
176
- ### Безопасные утилиты
177
-
178
- - `safe_get(collection, index, default)` - безопасное получение элемента
179
- - `safe_divide(a, b, default)` - деление без ошибки на ноль
180
- - `safe_max(collection, default)` - максимум из коллекции
181
- - `safe_min(collection, default)` - минимум из коллекции
182
- - `safe_sum(collection, default)` - сумма элементов
183
- - `safe_read_file(path, default)` - чтение файла без ошибок
184
-
185
- ### Обучающие функции
186
-
187
- - `show_best_practice(topic)` - показать лучшие практики
188
- - `generate_example(concept)` - сгенерировать пример кода
189
- - `list_available_concepts()` - список доступных концепций
190
- - `list_available_topics()` - список доступных тем
191
-
192
- ## 🧪 Тестирование
193
-
194
- Библиотека покрыта comprehensive тестами:
195
-
196
- ```bash
197
- # Запуск всех тестов
198
- pytest
199
-
200
- # Запуск property-based тестов
201
- pytest -k "property"
202
-
203
- # Запуск с покрытием
204
- pytest --cov=fishertools
205
- ```
206
-
207
- ## 🛠️ Разработка
208
-
209
- ```bash
210
- # Установка для разработки
211
- pip install -e ".[dev]"
212
-
213
- # Форматирование кода
214
- black fishertools tests
215
-
216
- # Проверка типов
217
- mypy fishertools
218
-
219
- # Линтинг
220
- ruff check fishertools
221
- ```
222
-
223
- ## 📋 Требования
224
-
225
- - Python 3.8+
226
- - requests >= 2.25.0
227
- - click >= 8.0.0
228
-
229
- Для разработки:
230
- - pytest >= 8.0.0
231
- - hypothesis >= 6.0.0 (для property-based тестов)
232
- - black >= 24.0.0
233
- - ruff >= 0.1.0
234
- - mypy >= 1.8.0
235
-
236
- ## 🤝 Вклад в проект
237
-
238
- Мы приветствуем вклад в развитие проекта! Пожалуйста:
239
-
240
- 1. Форкните репозиторий
241
- 2. Создайте ветку для новой функции
242
- 3. Добавьте тесты для новой функциональности
243
- 4. Убедитесь, что все тесты проходят
244
- 5. Создайте Pull Request
245
-
246
- ## 📄 Лицензия
247
-
248
- MIT License - см. файл [LICENSE](LICENSE)
249
-
250
- ## 🙏 Благодарности
251
-
252
- Спасибо всем, кто помогает делать Python более доступным для новичков!
253
-
254
- ---
255
-
256
- **Fishertools** - потому что каждый заслуживает понятные инструменты для изучения программирования! 🐍✨
@@ -1,81 +0,0 @@
1
- fishertools/__init__.py,sha256=vvsR-fPtFTR1zizj3lDr5NHuq0V6VZ2_nCDjiPqlY1k,2754
2
- fishertools/decorators.py,sha256=DKWLy_USqTOUFGRyWllznYJ61jvRyXLDZ3iKOj6u-6k,3719
3
- fishertools/helpers.py,sha256=qhSIY4ooZqCM5bKnku5XKjhONy9h1kMnrIEb4uRRZE4,4081
4
- fishertools/integration.py,sha256=m8oaKPENdS9aOck4gR8ooUqUa7EIdH7r7aOGaVEFWHw,19763
5
- fishertools/utils.py,sha256=6tUnCsHoHUoIpOYGgHAdqIqQ7FZhWzN3kCavgKKw1Uc,2159
6
- fishertools/config/__init__.py,sha256=8slBbZSDgQeUIcEmkpZD9o30CMKd8pbJ2bJV3t01j5M,508
7
- fishertools/config/manager.py,sha256=EPRjqYDcllanPA9w8PLjkanoi5ox38sVsuytz00ROhY,9095
8
- fishertools/config/models.py,sha256=TXfFTee68B7VK7BFBorHQDPas8sFJacdUQVH61AKSDA,2594
9
- fishertools/config/parser.py,sha256=oxf-LXf-7qr3aHKDZRFPsinwjSxI0gSY3kEEHALcwhk,10168
10
- fishertools/documentation/__init__.py,sha256=kA7s2hssDLxxlJPxMeHQIuHm-BPYaS86EXERe4ZcRuU,806
11
- fishertools/documentation/api.py,sha256=pn3K-3-xygpUfsNml6yAZeIhnGFPJyoL4c4AQJrxWCk,8718
12
- fishertools/documentation/generator.py,sha256=mOduCARUboSs5Wmai0PCwpmNyNCjQGN756xmouzZtSI,18063
13
- fishertools/documentation/models.py,sha256=8l2VC8dAib-c5jzuySnuOfKlM7Q1ITxV8phhBZDGd5Y,2884
14
- fishertools/documentation/visual.py,sha256=JxyFrhkmuHxpIaBMbLtuP3a24FYIwyoT3_mKPV-oZPE,19307
15
- fishertools/errors/__init__.py,sha256=yo6sd5MvY3jA6QE0G_-zXWAIvMs5Vyod81CTjCZNJEI,1248
16
- fishertools/errors/exceptions.py,sha256=ocBgqCMw8f_rJ2Rp_3uxlJFc-NphebdM0dizFQoAQcc,7301
17
- fishertools/errors/explainer.py,sha256=jMxXizmouvDGNLxTB9MCER9fjq1f8lZAE9ggeHWLGuo,14346
18
- fishertools/errors/formatters.py,sha256=khdiXGx4Lil5cqd3WWkh8ZLrQea0S8u90hbZgKnFsMo,13790
19
- fishertools/errors/models.py,sha256=v9_dIdiljK0j2ksPu403vei6COlgurtzvDiX8niB1MI,8427
20
- fishertools/errors/patterns.py,sha256=sbB51eR3JxD_DKWkiqelxnNuJh3X20mcTXL2nnwo6k0,12276
21
- fishertools/errors/recovery.py,sha256=7-3qd1uIv32vNltjvbVS2O5QJPixBLQVivU17f3Lxwo,17165
22
- fishertools/examples/__init__.py,sha256=1D6EezNPBqY5blM_SfK0C3dxSnPOnfXOaqnjbCMlH0Y,457
23
- fishertools/examples/models.py,sha256=gmOIdz29qnbWKMNAQ6r1i4BE7rZHK8Hv5jtF9Z0MYP0,2845
24
- fishertools/examples/repository.py,sha256=HO-rB2CCnMQBdEQuyfJbDF8PelMecyoltMs3hPUpjFM,31204
25
- fishertools/learn/__init__.py,sha256=ctPUYBaV_5uMMLgbBssbvs5tLvizIXE3TjhPmmCwgzA,508
26
- fishertools/learn/examples.py,sha256=Fkt5gA6XUA_QbPq0hRAefMkHB1bz4v8q4oOxonpLa8Y,19907
27
- fishertools/learn/tips.py,sha256=lGxheuvKe0QgFOn7CDpW2XppZ7bW7a1jYysSghibkUU,9697
28
- fishertools/learning/__init__.py,sha256=fBwvqElVmhaUnRBwXfwQQSm7A0lzyrZihSNA91cnm_U,780
29
- fishertools/learning/core.py,sha256=azR7rQLdSglSPZ-q-rZj5DEJ-2Ms0XyA0VV8KUvp1O0,14138
30
- fishertools/learning/models.py,sha256=eLB9w-lSC0SKRkl-HwYRjfmxhDANtQXdogPFyiuD8cc,2861
31
- fishertools/learning/progress.py,sha256=Nju1wei_UVYFW7LqYgMjKdLI8jiqHomH97gp-3d2ZOY,12761
32
- fishertools/learning/session.py,sha256=9ZE-UJpd9tFph0ZaEl8FN1VDJIU-fmTF9CsDyBbpVng,19837
33
- fishertools/learning/tutorial.py,sha256=jiRcOm0kDTHSMUzNw-1bNlzC9aOMJwHbXn8lW0IQHTc,28325
34
- fishertools/legacy/__init__.py,sha256=9NYb7gfwtp-4o5TJyUFvFapY1SnDPezfdyrcI-gU97g,2156
35
- fishertools/legacy/deprecated.py,sha256=rR4Z7eo42LFklkKBkrA05wzkes2IsjayeKzWZV27wI4,10033
36
- fishertools/legacy/deprecation.py,sha256=2EPKgix0N-F7limO9cirurXvApDJGVxNfh2jCfMZ9uc,5068
37
- fishertools/safe/__init__.py,sha256=_EtvxjCU2C1GDzVwfAjtsZ3P8a1UjKONvhgZB2Acpbw,638
38
- fishertools/safe/collections.py,sha256=NTfqVv4alPNr0wrcO5IGYSYk3FSSZYMIaYN3iFnOJlc,9738
39
- fishertools/safe/files.py,sha256=FNZafMdlBjeM05GIxVxNRyA0s2PlMsDZ7XjGmjWfPqs,9589
40
- fishertools/safe/strings.py,sha256=8kyN0ajwWBV4VE19LDspoVNFCTjghwx63aADZoX-6j8,315
41
- fishertools-0.2.1.dist-info/licenses/LICENSE,sha256=eLEqXLzyplfeaqnVJgjvQUsaFYxAPJ38xNpFhlntZrw,1084
42
- tests/__init__.py,sha256=09o34ess27Hp5ZJ9H6bqAiBkFWsp3cjy6hiT0kUH58E,139
43
- tests/conftest.py,sha256=DAnUXhbJvYWj8XLuggM3JdL19R8-XJjbZeNYeiWXjik,828
44
- tests/test_integration.py,sha256=5fmubUAKDCiNfIg-SJAWYeZlLPjgsky8ZmT0BUbd8kI,12236
45
- tests/test_integration_enhancements.py,sha256=DHHUAn271QZlN-BDsOQNBpEoktQhZvHJKOLwisOyQqw,18708
46
- tests/test_structure.py,sha256=Lhes-TH2TgbqW4K_G2KOjYPwHQW9dLT4mqLbm6Nc-w4,2015
47
- tests/test_structure_enhancements.py,sha256=8_6hCYc_jOJVdO3O1dhFFNPc5TCE2kbNkP2LaWS5q98,4760
48
- tests/test_config/__init__.py,sha256=9_IIF-3DZE06DR388NQp8WPEon2XZLR-VdoQXePkBCw,56
49
- tests/test_config/test_basic_config.py,sha256=oIwfjhRz1pcZQcAADect9x705cOPFvNQFWFo1QThzAA,2195
50
- tests/test_config/test_config_error_handling.py,sha256=aa0eviMv1MowPEnf9FK9iE2Ec19rdm-bZYNYxx-KIf0,12163
51
- tests/test_config/test_config_properties.py,sha256=4wAwc8bAMzqdYqBDndi7nqugwJ1teG4Vdj2Ijj0THWg,20789
52
- tests/test_documentation/__init__.py,sha256=xsEvmyIlWI3HnTTwr3Go3jGtmw4A0NboXxVYPpSA-tA,56
53
- tests/test_documentation/test_documentation_properties.py,sha256=5bVq-vUDfM2035jBf5tozTKouS21p_1R0PNncNTZqgA,10742
54
- tests/test_documentation/test_visual_documentation_properties.py,sha256=Z4LR5LBDlQTwTuDXJej8Itltmw_9NqYZG5uXWEE3lzA,19349
55
- tests/test_errors/__init__.py,sha256=TgRhzGojrbDYRs4YD4yz7U0YeffhDn8ZO-1C0IS0Hpo,49
56
- tests/test_errors/test_api.py,sha256=TGUoMKG5oNb6Im8rpXxPdFWEaV0Hu4kuYrDoDpUl5cs,12327
57
- tests/test_errors/test_error_handling.py,sha256=6D2ak6FXR9PQaakPSEx5kepbra9_MP38g13STuq3OH8,15342
58
- tests/test_errors/test_explainer.py,sha256=50O9oHOPNmCasp5MR9i2ql-py4HHN48s7nnv5Ck-hkM,7449
59
- tests/test_errors/test_formatters.py,sha256=D7dHAonDe0Q-uqNvKnccNrMEazgHlV99YrDo54anAfw,16267
60
- tests/test_errors/test_models.py,sha256=LMg86PO9F5qIrmVIqbWd4tr4zjLu-Tq6m4h95VGkGuM,10566
61
- tests/test_errors/test_patterns.py,sha256=30unn0-XIkAkvP5gNoskNAlnLDtOZinzV1Iiu6i4Qok,12791
62
- tests/test_examples/__init__.py,sha256=gf_sI2CD9TaM_mony0sUPEqBsOxXLqXE6WPau7bysWE,51
63
- tests/test_examples/test_example_repository_properties.py,sha256=ksQgL5oEaJM-tUjOcwVmEBeDEGLqUAVKTXw766NZgJU,10361
64
- tests/test_examples/test_specific_examples.py,sha256=VjDHvVrheGI2M7UiZVrnoD2qyJ9Q6uQFjG7qbD2zLpk,14698
65
- tests/test_learn/__init__.py,sha256=Bw7w8u9uiRrvtIg3k9Ac-0gYoE_3_hFvDbEetpZaNFA,35
66
- tests/test_learn/test_examples.py,sha256=IQtYcVbe1pspiRasLY6JN1MQ20kWoxWCbOetbqMYXAs,8615
67
- tests/test_learn/test_tips.py,sha256=fRZ8U0jXnpZFkVFbDnLKBoVayXhXJx3qIn0YUgojguc,11201
68
- tests/test_learning/__init__.py,sha256=h-oxqKnBXNlK_AB8SP1aTP4sChfYDdydpxU6XQUOufc,47
69
- tests/test_learning/test_interactive_learning_properties.py,sha256=EaCABbHSHFde4E_gyC6vAns1paSE_2dergKxAx_f5jM,17528
70
- tests/test_learning/test_learning_system_properties.py,sha256=09Ir-s1v7FM9uD6hqprEjLN6JvligxjFDoRdLQ5wPiI,8396
71
- tests/test_learning/test_progress_tracking_properties.py,sha256=xLwIk_a9Xfhw1WFOO2NxjuC63Fa_KiXmBWWJnhmbB8A,13290
72
- tests/test_legacy/__init__.py,sha256=ofWG_WJXsOheTEbGn_5Y0wvppcN0kKb2E6aUFL98a_s,62
73
- tests/test_legacy/test_backward_compatibility.py,sha256=svdImGaTMAyAWoyF_Qm8nCbVrxnT9klg3u-OEVlXaUo,9786
74
- tests/test_legacy/test_deprecation_warnings.py,sha256=lSFLTDXfTjZcpqczPlxrO6Sw0CErMepxIhuNHdv36PU,9890
75
- tests/test_safe/__init__.py,sha256=ZEQlbeYtDtcBYqkE7sZbwkjKgqbPOwXI3S5U_2gjo0w,35
76
- tests/test_safe/test_collections_properties.py,sha256=DYQ542pwoacsTRS3-TMdgtcqLj6SyUnag7gZoK4dFDc,8359
77
- tests/test_safe/test_files.py,sha256=QSKyImlyIfVqWk_xh2LpD5znZGrJi9HCOrP-ACz3hjE,4162
78
- fishertools-0.2.1.dist-info/METADATA,sha256=cyBSPWKhxy2ynp-yFDwnAiI0P7QZPPvqd9uOCQELgF0,9049
79
- fishertools-0.2.1.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
80
- fishertools-0.2.1.dist-info/top_level.txt,sha256=rZDacVWxcOzBe1B5mCXYqOShQ1KJyzXIPAAJNZ5OYv4,18
81
- fishertools-0.2.1.dist-info/RECORD,,