OwlCyberSecurity - MANAGER
Edit File: router.cpython-311.pyc
� �������h�/���������������������������U�d�Z�ddlmZ�ddlZddlZddlZddlZddlmZ�ddl m Z �ddlmZ�ddl mZ�ddlmZmZmZmZmZmZmZmZmZ�dd lmZ�ddlZd dlmZmZ�d dl m!Z!�d d l"m#Z#�d dl$m%Z%m&Z&�d dl'm(Z(�erddl)m*Z*��ej+��������dej,��������������������Z-de.d<����ej/����������������������Z0de.d<���e0dz��Z1de.d<���d+d�Z2�G�d��de3������������Z4�G�d��de4������������Z5�G�d��de4������������Z6d,d"�Z7d-d$�Z8d%��Z9d&d'�d.d*�Z:dS�)/zMigration router.�����)�annotationsN)�cached_property)� import_module)�Path)� ModuleType) � TYPE_CHECKING�Any�Final�Iterable�List�Optional�Set�Type�Union)�mock����)�NEWLINE� diff_many)�logger)�Migrator)� MIGRATE_TABLE�MigrateHistory)�TEMPLATE)�Loggerz\s+$r ����CLEAN_RE�CURDIR� migrations�DEFAULT_MIGRATE_DIRc����������������������d�S��N��)�m�d�fakes��� �L/opt/imunify360/venv/lib64/python3.11/site-packages/peewee_migrate/router.py�voidr&��� ���s�������4�����c������������������������e�Zd�ZdZeddefd2d�Zed3d���������������Ze d4d���������������Z e d5d���������������Ze d5d���������������Zed6d���������������Z ddd�d7d�Zd8d9d�Zd��Z � � �d:d;d%�Zd9d&�Zd'ddd(�d<d.�Zd=dd/�d>d0�Zd1��ZdS�)?� BaseRouterzAbstract base class for router.N�database�Union[pw.Database, pw.Proxy]�ignore�Optional[Iterable[str]]�schema� Optional[str]r���r���c�����������������������||�_���������||�_��������||�_��������||�_��������||�_��������t����������|�j���������t����������j��������t����������j��������f������������st����������d|z���������������dS�)�Initialize the router.zInvalid database: %sN) r*���� migrate_tabler.���r,���r���� isinstance�pw�Database�Proxy� TypeError)�selfr*���r2���r,���r.���r���s��� r%����__init__zBaseRouter.__init__'���sc�������!�� �*�������������$�-�"�+�r�x�)@�A�A�� ?��2�X�=�>�>�>� ?�� ?r'����return�Type[MigrateHistory]c����������������������t�����������j��������}|�j��������|_��������|�j��������|_��������|�j��������|_��������t����������j��������d��������������t�����������S�)z,Initialize and cache MigrationHistory model.T)�safe)r����_metar*���r2���� table_namer.����create_table)r8����metas��� r%����modelzBaseRouter.model8���sB��������#��� �� ��,����k����#��.�.�.�.��r'���� Iterable[str]c����������������������t������������)zGet migrations to run.��NotImplementedError�r8���s��� r%����todozBaseRouter.todoB���s �������"�!r'���� List[str]c����������������������d��|�j�����������������������������������������������������������������|�j���������j��������������������D���������������S�)zScan migrations in database.c����������������������g�|�] }|j����������� S�r!�����name)�.0�mms��� r%���� <listcomp>z#BaseRouter.done.<locals>.<listcomp>J���s������N�N�N�B���N�N�Nr'���)rB����select�order_by�idrG���s��� r%����donezBaseRouter.doneG���s9�������O�N�$�*�"3�"3�"5�"5�">�">�t�z�}�"M�"M�N�N�N�Nr'���c�����������������R������t����������|�j����������������������fd�|�j��������D���������������S�)z'Calculate difference between fs and db.c�����������������������g�|�]}|�v�|�� S�r!���r!���)rN���rM���rT���s��� �r%���rP���z#BaseRouter.diff.<locals>.<listcomp>P���s#�������?�?�?��d�$�.>�.>��.>�.>�.>r'���)�setrT���rH���)r8���rT���s��� @r%����diffzBaseRouter.diffL���s.���������4�9�~�~��?�?�?�?���?�?�?�?r'���r���c�����������������n�����t����������|�j��������������������}|�j��������D�]}|����������������������||��������������|S�)z2Create migrator and setup it with fake migrations.)r���r*���rT����run_one)r8����migratorrM���s��� r%���r[���zBaseRouter.migratorR���s@��������D�M�*�*���I�� )�� )�D��L�L��x�(�(�(�(��r'����autoF)r\���rM����strr ���c����������������X������dx}}|�rTt�����������j�����������������������������t�������������������������t ����������|t ����������������������r|n|g}t ����������d��|D���������������������������sv �|}t ����������|t����������������������r%d��t����������j ��������t������������g������������D���������������}d��|D���������������}n,#�t����������$�r���j�����������������������������d|�������������Y�dS�w�xY�w��j ��������r��fd�|D���������������}��j��������D�]}�����������������������|��j��������d� �������������� t#������������j��������|������������}|s��j�����������������������������d �������������dS�t#������������j��������|d�������������}��j�����������������������������d|������������������������������������|||������������}��j�����������������������������d |�������������|S�)zYCreate a migration. :param auto: Python module path to scan for models. ��c��������������3���4���K����|�]}t����������|������������V����d�S�r ���)�_check_model)rN���r"���s��� r%���� <genexpr>z$BaseRouter.create.<locals>.<genexpr>d���s(����������7�7�1�|�A���7�7�7�7�7�7r'���c����������������������g�|�] \��}}}|�|��S�r!���r!���)rN����_r"����ispkgs��� r%���rP���z%BaseRouter.create.<locals>.<listcomp>h���s4�������#��#��#�"-�!�Q��X]�#��#��#��#r'���c�����������������6�����g�|�]}t����������|������������D�]}|���S�r!���)�load_models)rN����moduler"���s��� r%���rP���z%BaseRouter.create.<locals>.<listcomp>k���s-������S�S�S�F�{�6�?R�?R�S�S�!�a�S�S�S�Sr'���zCan't import models module: %sNc�����������������:������g�|�]}|j���������j���������j��������v�|��S�r!���)r>���rM���r,���)rN���r"���r8���s��� �r%���rP���z%BaseRouter.create.<locals>.<listcomp>r���s)�������O�O�O��q�w�|�4�;�/N�/N�!�/N�/N�/Nr'���T�r$���zNo changes found.��reversezCreating migration "%s"z"Migration has been created as "%s")�sys�path�appendr���r3����list�all�bool�pkgutil�iter_modules�ImportErrorr���� exceptionr,���rX���rZ���r[����compile_migrations�warning�info�compile)r8���rM���r\����migrate�rollback�models�modules� migrations���` r%����createzBaseRouter.createZ���s������� � ���(��� O��H�O�O��M�*�*�*�'��d�3�3�?�T�T�$��F��7�7��7�7�7�7�7�� � �$�G�!�$��-�-���#��#�18�1E�&�{�m�1T�1T�#��#��#���T�S�g�S�S�S�F�F��"�� �� �� ��K�)�)�*J�D�Q�Q�Q��4�4� ������{�� P�O�O�O�O�V�O�O�O��!�Y�� B�� B� ����Y�� �D��A�A�A�A�(����?�?�G��� ���#�#�$7�8�8�8��t�)�$�-���N�N�N�H�����2�D�9�9�9��|�|�D�'�8�4�4������=�t�D�D�D��s����"AB+��+%C�C�initialc���������������������t����������|�j��������������������}t����������|t����������|�j��������j��������������������������������}|s|�j�����������������������������d������������S�|�������������������������������������|�j��������� ��������������������d|�������������t����������|�j��������g�������������}|�� ��������������������|||d������������}t����������|�j��������������������}|����������������������||dd��������������|�j��������� ��������������������d|�������������dS�)zMerge migrations into one.zCan't merge migrationszMerge migrations into "%s"r���T�r$����forcez$Migrations has been merged into "%s"N)r���r*���rw���rp���r[����ormr����error�clearry���rz���rZ���)r8���rM���r[���r{���r|���s��� r%����mergezBaseRouter.merge����s��������D�M�*�*��$�X�t�D�M�4E�/F�/F�G�G���� ?��;�$�$�%=�>�>�>�� � ��������5�t�<�<�<�%�d�m�R�8�8���|�|�D�'�8�Q�7�7���D�M�*�*�����T�8�$�d��;�;�;�����?��F�F�F��tr'���c�����������������\�����|�j��������������������������������������������������������������������������������dS�)zClear migrations.N)rB����delete�executerG���s��� r%���r����zBaseRouter.clear����s(������� �����#�#�%�%�%�%�%r'���r_���r{���r|����num� Optional[int]c����������������������t������������)�Create a migration.rE���)r8���rM���r{���r|���r����s��� r%���rz���zBaseRouter.compile����s �������"�!r'���c����������������������t������������)�Read migration from file.rE���)r8���rM���s��� r%����readzBaseRouter.read����s������!�!r'���T)r$���� downgrader����r[���r$���rr���r����r����c�������������������� �|�����������������������|������������\��}}|r�t����������j����������������������}d|j��������_��������t����������j��������d������������5��t����������j��������d|�������������5���|||�j��������|��������������ddd�������������n#�1�swxY�w�Y���ddd�������������n#�1�swxY�w�Y���|r6|�j�����������������������������|��������������|�j ��������� ��������������������d|�������������g�|_��������|S�|�j�������������������������������������������5��|sT|�j ��������� ��������������������d|��������������|||�j��������|���������������|���������������|�j�����������������������������|��������������n�|�j ��������� ��������������������d |��������������|||�j��������|���������������|���������������|�j��������� �������������������������������������������������������|�j��������j��������|k����������������������������������������������������|�j ��������� ��������������������d|�������������|cddd�������������S�#�1�swxY�w�Y���dS�#�t"����������$�r=�|�j��������������������������������������������|sd nd} |�j �����������������������������d| |���������������w�xY�w) z(Run/emulate a migration with given name.Nzpeewee.Model.selectzpeewee.Database.execute_sql)�return_valuerj���rL���zDone %szMigrate "%s"zRolling back %s� Migration�Rollbackz %s failed: %s)r����r����Mock� fetch_oner�����patchr*���rB���r����r���ry����__ops__�transactionr�����whererM���r����� Exceptionr|���rv���) r8���rM���r[���r$���r����r����r{���r|���� mocked_cursor� operations ��� r%���rZ���zBaseRouter.run_one����sX�����$ � $� � �$����G�X��� � $� ��� �7;� �'�4��Z� 5�6�6��@��@�� �1� �9��9��9��@��@���G�H�d�m�$�?�?�?�?�@��@��@��@��@��@��@��@��@��@��@�����@��@��@��@��@��@��@��@��@��@��@��@��@��@��@�����@��@��@��@� ���6��J�%�%�4�%�0�0�0��K�$�$�Y��5�5�5�#%�� �����*�*�,�,�� �� � �� Q��K�$�$�^�T�:�:�:��G�H�d�m�$�?�?�?�?��H�J�J�J��J�%�%�4�%�0�0�0�0��K�$�$�%6��=�=�=��H�X�t�}�4�@�@�@�@��H�J�J�J��J�%�%�'�'�-�-�d�j�o��.E�F�F�N�N�P�P�P��� � ��D�1�1�1�� �� �� �� �� �� �� �� �� �� �� �� ����� �� �� �� �� �� ����� �� �� ��M�"�"�$�$�$�+4�D���*�I��K�!�!�/�9�d�C�C�C�� ���s�����A H��B�&B�:B�B � B� B �B�H��B!�!H��$B!�%AH��)H��C7H�9H��H � H�� H �H��AIrj���c���������� ����������|�j������������������������������d�������������g�}|�j��������}|s|�j������������������������������d�������������|S�|�j��������}|D�]8}|���������������������|����������������������||||��������������������������|r||k����r�n�9|S�)zRun migrations.zStarting migrationszThere is nothing to migrater����)r���ry���rX���r[���ro���rZ���)r8���rM���r$���rT���rX���r[����mnames��� r%����runzBaseRouter.run����s�����������.�/�/�/����y���� ��K���:�;�;�;��K��=���� �� �E��K�K����U�H�4�t��L�L�M�M�M��� ��� � �����r'���c����������������������|�j���������}|sd}t����������|�������������|d���������}|�j��������}|����������������������||dd��������������|�j�����������������������������d|�������������dS�)zRollback the latest migration.zThere is nothing to rollback���FT)r$���r����zDowngraded migration: %sN)rT����RuntimeErrorr[���rZ���r���rx���)r8���rT����msgrM���r[���s��� r%���r|���zBaseRouter.rollback����sm�������y���� $�0�C��s�#�#�#��B�x���=�����T�8�%�4��@�@�@�����6��=�=�=�=�=r'���)r*���r+���r,���r-���r.���r/���r���r���)r:���r;���)r:���rC���)r:���rI���)r:���r���)rM���r]���r\���r ���r:���r/���)r����)rM���r]����r_���r_���N) rM���r]���r{���r]���r|���r]���r����r����r:���r]���)rM���r]���r[���r���r$���rr���r����rr���r����rr���r:���r]���r ���)rM���r/���r$���rr���r:���rI���)�__name__� __module__�__qualname__�__doc__r���r���r9���r���rB����propertyrH���rT���rX���r[���r����r����r����rz���r����rZ���r����r|���r!���r'���r%���r)���r)���$���s��������������)�)� �$�*.� $�� ?��?��?��?��?�"���������_����"��"��"���X�"���O��O��O���X�O���@��@��@���X�@� ���������_��'���'��'��'��'��'��'�R���������$&��&��&����!�"��"��"��"��"�"��"��"��"�����.��.��.��.��.��.�`�e�������������$ >�� >�� >�� >�� >r'���r)���c�������������������x�������e�Zd�ZdZ�ej��������d������������Z �dd��fd� Zed����������������Z ddd�Zd��Z ��fd �Z��xZS�)�RouterzFile system router.z[\d]{3}_[^\.]+\.py$N�migrate_dir�Optional[Union[str, Path]]c������������������������t����������t����������|�������������j��������|fi�|���|�t����������}n$t ����������|t ����������������������rt ����������|������������}||�_��������dS��r1���N)�superr����r9���r���r3���r]���r���r����)r8���r*���r�����kwargs� __class__s��� �r%���r9���zRouter.__init__����sd�������� %��f�d���$�X�8�8��8�8�8���-�K�K� ��S� )� )�� ,��{�+�+�K�&����r'���c�������������������������j��������������������������������������������s;��j�����������������������������d��j������������������������j������������������������������d��������������t������������fd�t ����������j����������j���������������������D���������������������������S�)zScan migrations in file system.z'Migration directory: %s does not exist.T)�parentsc��������������3���`����K����|�](}�j������������������������������|�������������|d�d����������V����)d�S�)N���)�filemask�match)rN����fr8���s��� �r%���rb���zRouter.todo.<locals>.<genexpr>��sA�����������]�]��d�m�FY�FY�Z[�F\�F\�]�a����f�]�]�]�]�]�]r'���)r�����existsr���rx����mkdir�sorted�os�listdirrG���s���`r%���rH���zRouter.todo ��s�����������&�&�(�(�� 1��K��� I�4�K[�\�\�\���"�"�4�"�0�0�0��]�]�]�]�b�j��1A�&B�&B�]�]�]�]�]�]r'���r_���r:���r]���c�����������������4����|�t����������|�j��������������������}d���������������������|dz���������������|z���}|dz���}|�j��������|z��}|���������������������d������������5�}|���������������������t ����������j��������|||��������������������������ddd�������������n#�1�swxY�w�Y���|S�)r����Nz{:03}_r����.py�w)r{���r|���rM���)�lenrH����formatr�����open�writer���)r8���rM���r{���r|���r�����filenamern���r����s��� r%���rz���zRouter.compile��s��������;��d�i�.�.�C����s�Q�w�'�'�$�.���%�<����(�*�� �Y�Y�s�^�^�� X�q� �G�G�H�O�G�h�X�V�V�V�W�W�W� X�� X�� X�� X�� X�� X�� X�� X�� X�� X�� X����� X�� X�� X�� X���s����+B � B�Bc�����������������Z����|�j���������|dz���z��}|���������������������d������������5�}|�����������������������������������}i�}t����������|ddd�������������}t ����������||d�������������|���������������������dt����������������������|���������������������d t����������������������fcddd�������������S�#�1�swxY�w�Y���dS�) r����r�����rz<string>�execT)�dont_inheritNr{���r|���)r����r����r����rz���r�����getr&���)r8���rM���rn���r�����code�scopes��� r%���r����zRouter.read��s���������4�%�<�0�� �Y�Y�s�^�^�� K�q��6�6�8�8�D��E��4��V�$�G�G�G�D���u�d�#�#�#��9�9�Y��-�-�u�y�y��T�/J�/J�J� K�� K�� K�� K�� K�� K�� K�� K�� K�� K�� K�� K����� K�� K�� K�� K�� K�� Ks����A0B � B$�'B$c�����������������������t����������t����������|�������������������������������������������������|�j��������D�]#}|�j��������|dz���z��}|�������������������������������������$dS�)zRemove migrations from fs.r����N)r����r����r����rH���r�����unlink)r8���rM���rn���r����s��� �r%���r����zRouter.clear(��sZ������� �f�d���!�!�#�#�#��I�� �� �D��#�t�e�|�4�D��K�K�M�M�M�M� �� r'���r ���)r����r����r����)r:���r]���) r����r����r����r�����rerz���r����r9���r����rH���r����r����� __classcell__�r����s���@r%���r����r��������s�������������������r�z�0�1�1�H� �37�'��'��'��'��'��'��'���^��^���X�^����������K��K��K�����������������r'���r����c�������������������*�������e�Zd�ZdZd��fd� Zd��Z��xZS�)�ModuleRouterzModule based router.r���c������������������������t����������t����������|�������������j��������|fi�|���t����������|t����������������������rt����������|������������}||�_��������dS�r����)r����r����r9���r3���r]���r����migrate_module)r8���r*���r����r����r����s��� �r%���r9���zModuleRouter.__init__3��sU�������*��l�D�!�!�*�8�>�>�v�>�>�>��n�c�*�*�� ;�*�>�:�:�N�,����r'���c����������������������t����������|�j��������|������������}t����������|dt����������������������t����������|dt����������������������fS�)zRead migrations from a module.r{���r|���)�getattrr����r&���)r8���rM����mods��� r%���r����zModuleRouter.read<��s7�������d�)�4�0�0���s�I�t�,�,�g�c�:�t�.L�.L�L�Lr'���)r���)r����r����r����r����r9���r����r����r����s���@r%���r����r����0��sY�����������������-��-��-��-��-��-�M��M��M��M��M��M��Mr'���r����rh����Union[str, ModuleType]r:����Set[Type[pw.Model]]c�����������������h�����t����������|�t����������������������r|�gnt����������|�������������}d��|D���������������S�)zLoad models from given module.c����������� ������v������h�|�]5�t����������t�����������fd��t�����������������������D���������������������������D�]}|���6S�)c��������������3���8����K����|�]}t�����������|������������V����d�S�r ���)r����)rN���rM���rh���s��� �r%���rb���z(load_models.<locals>.<setcomp>.<genexpr>I��s-�����������&U�&U��w�v�t�'<�'<�&U�&U�&U�&U�&U�&Ur'���)�filterra����dir)rN���r"���rh���s��� @r%���� <setcomp>zload_models.<locals>.<setcomp>F��se����������������&U�&U�&U�&U��V���&U�&U�&U�V�V����� �� �������r'���)r3���r����_import_submodules)rh���r~���s��� r%���rg���rg���B��sI�������%�V�Z�8�8�X�v�h�h�>P�QW�>X�>X�G�����������r'���.c���������������������|du�rt������������������������}t����������|�t����������������������rt����������|�������������}�t ����������|�d������������s|�hS�g�}t����������|�j��������������������|z��r|S�|t����������|�j��������������������z��}t ����������j��������|�j��������|�j��������dz���������������D�]i\��}}}|� ��������������������|d�������������}|�|j ����������&|j �����������������������������|������������}|���������������������|�������������|r|t����������|������������z ��}�j|S�)N.�__path__�.)rW���r3���r]���r����hasattrr����rs���� walk_packagesr����� find_spec�loader�load_modulero���r����)�package�passedr~���r����rM����is_pkg�specrh���s��� r%���r����r����M��s!����� ��}�}������'�3����)���(�(����7�J�'�'����y���G� �7����v�%����� �c�'�"�#�#�#�F� '� 5�g�6F��HX�[^�H^� _� _��2��2����f�����d�+�+���<�4�;�.����(�(��.�.�����v������ 2��)�&�1�1�1�G���Nr'���c����������������������t����������|�t����������������������o)t����������|�t����������j��������������������ot����������|�d������������S�)z/Check object if it's a peewee model and unique.r>���)r3����type� issubclassr4����Modelr����)�objs��� r%���ra���ra���i��s3�������c�4� � �X�Z��R�X�%>�%>�X�7�3�PW�CX�CX�Xr'���Frk���r[���r���c��������������������t����������|�j��������������������}|r||}}t����������|||�|�������������}|sdS�t����������t����������j��������d���������������������|���������������������������������d������������������������z���}t�������������������������������d|������������S�)z$Compile migrations for given models.rk���r_���z � )rp���r����r���r����join�splitr����sub)r[���r}���rl����sourcer���r����s��� r%���rw���rw���n��s������� �(�,� � �F���(������6�6�8�W�E�E�E�J�����r��W�\�&�+�+�j�"9�"9�"?�"?��"E�"E�F�F�F�D��<�<��d�#�#�#r'���r ���)rh���r����r:���r����).)r[���r���);r����� __future__r���r����rs���r����rm���� functoolsr���� importlibr����pathlibr����typesr����typingr���r ���r ���r���r���r ���r���r���r����unittestr����peeweer4���r\���r���r����logsr���r[���r���r}���r���r����templater����loggingr���rz����Mr����__annotations__�cwdr���r���r&����objectr)���r����r����rg���r����ra���rw���r!���r'���r%����<module>r �����s������������"��"��"��"��"��"�� � � � ������� � � � �� � � � ��%��%��%��%��%��%��#��#��#��#��#��#��������������������������X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X����������������������$��$��$��$��$��$��$��$��������������������������1��1��1��1��1��1��1��1������������������������"�*�W�b�d�+�+���+��+��+��+���� � ����������#�l�2����2��2��2��2��������O>��O>��O>��O>��O>���O>��O>��O>�d7��7��7��7��7�Z��7��7��7�tM��M��M��M��M�:��M��M��M�$��������������8Y��Y��Y� �?D��$��$��$��$��$��$��$��$r'���