File: //opt/imunify360/venv/share/imunify360/scripts/__pycache__/imunify_core_release.cpython-311.pyc
�
�qjW � �� � d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl
mZmZ ddl
mZmZmZmZmZ ed� � ZdZdZdZd Zd
ZdZdZd
Z ej d� � Z ej d� � Z G d� de� � Z deddfd�Z!dede"ddfd�Z#dede$fd�Z%de$de$fd�Z&dedede'fd�Z(dedefd�Z)dedee fd �Z*d!e$defd"�Z+ded#ed$e$ddfd%�Z, dEd&ed'ee$ ddfd(�Z-dede$dedefd)�Z.d*e$deddfd+�Z/d&ede$fd,�Z0deddfd-�Z1d.ed&eddfd/�Z2d0ee dee fd1�Z3deddfd2�Z4ded*e$d3e'ddfd4�Z5d.eddfd5�Z6ded&eddfd6�Z7dedefd7�Z8dede$deddfd8�Z9de$deddfd9�Z:de$deddfd:�Z;dede$deddfd;�Z<deddfd<�Z=dedee fd=�Z>deddfd>�Z?deddfd?�Z@deddfd@�ZAdejB fdA�ZCdEdBeee$ de"fdC�ZDeEdDk r eF eD� � � � �dS )Fa Install and atomically select versioned imunify-core Python releases.
This module deliberately uses only the Python standard library and never
imports ``defence360agent``: it must remain runnable while the live package
selection is being changed by rpm or dpkg maintainer scripts.
� N)�Path�
PurePosixPath)�Iterable�List�Optional�Sequence�Setz/opt/imunify360/venv�versionsz
imunify-core-z.imunify-core-current�defence360agentzimunify_core.egg-infoz.artifact-sha256z00-imunify-core-migration.pthz"# managed by imunify-core-release
z+^imunify-core-[A-Za-z0-9][A-Za-z0-9._+~-]*$z^imunify_core-[^/]+\.egg-info$c � � e Zd ZdZdS )�ReleaseErrorz3The managed release layout is unsafe or incomplete.N)�__name__�
__module__�__qualname__�__doc__� � �E/opt/imunify360/venv/share/imunify360/scripts/imunify_core_release.pyr
r
# s � � � � � �=�=�=�=r r
�path�returnc �X � t j t | � � t j t t dd� � z � � }n# t
$ r Y d S w xY w t j |� � n# t
$ r Y nw xY wt j |� � d S # t j |� � w xY w)N�O_DIRECTORYr )�os�open�str�O_RDONLY�getattr�OSError�fsync�close)r �fds r �_fsync_directoryr"