a qéqeã@sfddlZddlmZmZmZddlmZddlmZm Z ddl m Z ddl m Z Gdd „d ee ƒZdS) éN)ÚIterableÚOptionalÚTupleé)Ú MatchContext)Ú IoportconÚIoportconRange)Ú PolicyQuery)Ú match_rangecs²eZdZUdZdZeeed<dZe ed<dZ e ed<dZ e ed<dZ e ed<e eed œd d „ƒZejeeeefdd œd d „ƒZdd œ‡fdd„ Zeed œdd„Z‡ZS)ÚIoportconQueryað Ioportcon context query. Parameter: policy The policy to query. Keyword Parameters/Class attributes: ports A 2-tuple of the port range to match. (Set both to the same value for a single port) ports_subset If true, the criteria will match if it is a subset of the ioportcon's range. ports_overlap If true, the criteria will match if it overlaps any of the ioportcon's range. ports_superset If true, the criteria will match if it is a superset of the ioportcon's range. ports_proper If true, use proper superset/subset operations. No effect if not using set operations. user The criteria to match the context's user. user_regex If true, regular expression matching will be used on the user. role The criteria to match the context's role. role_regex If true, regular expression matching will be used on the role. type_ The criteria to match the context's type. type_regex If true, regular expression matching will be used on the type. range_ The criteria to match the context's range. range_subset If true, the criteria will match if it is a subset of the context's range. range_overlap If true, the criteria will match if it overlaps any of the context's range. range_superset If true, the criteria will match if it is a superset of the context's range. range_proper If true, use proper superset/subset operations. No effect if not using set operations. NÚ_portsFÚ ports_subsetÚ ports_overlapÚports_supersetÚ ports_proper)ÚreturncCs|jS©N)r )Úself©rú}|jrdt|j|j|j |j |j |j ƒsdq:|  |j¡srq:|Vq:dS)z/Generator which yields all matching ioportcons.z"Generating results from {0.policy}z€Ports: {0.ports!r}, overlap: {0.ports_overlap}, subset: {0.ports_subset}, superset: {0.ports_superset}, proper: {0.ports_proper}N)rÚinforÚdebugZ_match_context_debugrZ ioportconsrr r rrrZ_match_contextÚcontext)rZ ioportconrrrÚresultsXs$ þ ú zIoportconQuery.results)rÚ __module__Ú __qualname__Ú__doc__r rrÚ__annotations__r ÚboolrrrÚpropertyrÚsetterrÚintrrrr&Ú __classcell__rrr!rr s )    r )rÚtypingrrrZmixinsrZ policyreprrÚqueryr Úutilr r rrrrÚs