Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/24 feature allow calling attach on an instance of a class without modifying the class itself #25

Conversation

mxndtaylor
Copy link
Owner

No description provided.

Copy link

github-actions bot commented Jun 9, 2024

Reports:

Test Report
<?xml version="1.0" encoding="utf-8"?><testsuites><testsuite name="pytest" errors="0" failures="0" skipped="0" tests="43" time="0.151" timestamp="2024-06-09T15:19:33.810151" hostname="fv-az885-305"><testcase classname="tests.alias_test" name="test_alias_init" time="0.001" /><testcase classname="tests.alias_test" name="test_alias_get_prop" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_set_prop" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_doc" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_attach_to_instance" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_attach_to_class_non_isolated" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_attach_to_instance_no_second_dynamic_class" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_attach_err" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_attach_name_on_attach" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_attach_no_owner_err" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_trample_on_attach_err" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_trample_on_attach_warning" time="0.000" /><testcase classname="tests.alias_test.TestCircAlias" name="test_alias_chain_no_err" time="0.001" /><testcase classname="tests.alias_test.TestCircAlias" name="test_len_2_circle" time="0.001" /><testcase classname="tests.alias_test.TestCircAlias" name="test_len_1_circle" time="0.000" /><testcase classname="tests.alias_test.TestCircAlias" name="test_len_3_circle" time="0.000" /><testcase classname="tests.alias_test.TestCircAlias" name="test_reference_to_circle" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_prop_alias" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_second_prop_alias" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_prop_pascal_case" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_prop_doc" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_aliased_method" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_aliased_method_alias" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_method_pascal_case" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_aliased_method_doc" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_aliased_method_doc_with_nested" time="0.001" /><testcase classname="tests.aliased_test.TestAliased" name="test_nested_alias" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_alias_of_nested_alias" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_aliased_class" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_aliased_class_alias" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_snake_case_class_alias" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_aliased_class_methods" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_aliased_static_methods" time="0.000" /><testcase classname="tests.aliased_test" name="test_static_method_py39_workaround" time="0.000" /><testcase classname="tests.aliased_test" name="test_static_method_no_name_found" time="0.000" /><testcase classname="tests.aliased_test" name="test_aliased_aliased" time="0.000" /><testcase classname="tests.aliased_test" name="test_aliased_aliased_nontrivial" time="0.000" /><testcase classname="tests.aliased_test" name="test_returning_aliased_descriptor_object_from_cls" time="0.000" /><testcase classname="tests.virtual_alias_test" name="test_valiases_dir" time="0.001" /><testcase classname="tests.virtual_alias_test" name="test_valias_dict" time="0.000" /><testcase classname="tests.virtual_alias_test" name="test_valiases" time="0.000" /><testcase classname="tests.virtual_alias_test" name="test_valias_trample_warning" time="0.000" /><testcase classname="tests.virtual_alias_test" name="test_valias_trample_err" time="0.001" /></testsuite></testsuites>
Coverage Report
<?xml version="1.0" ?>
<coverage version="7.5.1" timestamp="1717946375054" lines-valid="197" lines-covered="196" line-rate="0.9949" branches-valid="66" branches-covered="65" branch-rate="0.9848" complexity="0">
	<!-- Generated by coverage.py: https://coverage.readthedocs.io/en/7.5.1 -->
	<!-- Based on https://raw.githubusercontent.com/cobertura/web/master/htdocs/xml/coverage-04.dtd -->
	<sources>
		<source>/home/runner/work/aliasing/aliasing</source>
	</sources>
	<packages>
		<package name="src.aliasing" line-rate="0.9949" branch-rate="0.9848" complexity="0">
			<classes>
				<class name="__init__.py" filename="src/aliasing/__init__.py" complexity="0" line-rate="1" branch-rate="1">
					<methods/>
					<lines>
						<line number="1" hits="1"/>
						<line number="2" hits="1"/>
						<line number="3" hits="1"/>
						<line number="10" hits="1"/>
					</lines>
				</class>
				<class name="core.py" filename="src/aliasing/core.py" complexity="0" line-rate="0.9932" branch-rate="0.9821">
					<methods/>
					<lines>
						<line number="1" hits="1"/>
						<line number="2" hits="1"/>
						<line number="3" hits="1"/>
						<line number="5" hits="1"/>
						<line number="8" hits="1"/>
						<line number="9" hits="1"/>
						<line number="17" hits="1"/>
						<line number="20" hits="1"/>
						<line number="21" hits="1"/>
						<line number="22" hits="1"/>
						<line number="23" hits="1"/>
						<line number="25" hits="1"/>
						<line number="26" hits="1"/>
						<line number="28" hits="1"/>
						<line number="29" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="32" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="37" hits="1"/>
						<line number="38" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="43" hits="1"/>
						<line number="44" hits="1"/>
						<line number="46" hits="1"/>
						<line number="48" hits="1"/>
						<line number="49" hits="1"/>
						<line number="51" hits="1"/>
						<line number="52" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="53" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="54" hits="1"/>
						<line number="57" hits="1"/>
						<line number="60" hits="1"/>
						<line number="68" hits="1"/>
						<line number="69" hits="1"/>
						<line number="71" hits="1"/>
						<line number="72" hits="1"/>
						<line number="73" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="79" hits="1"/>
						<line number="81" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="83"/>
						<line number="83" hits="0"/>
						<line number="84" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="86" hits="1"/>
						<line number="87" hits="1"/>
						<line number="88" hits="1"/>
						<line number="89" hits="1"/>
						<line number="92" hits="1"/>
						<line number="94" hits="1"/>
						<line number="96" hits="1"/>
						<line number="97" hits="1"/>
						<line number="101" hits="1"/>
						<line number="102" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="103" hits="1"/>
						<line number="107" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="108" hits="1"/>
						<line number="112" hits="1"/>
						<line number="114" hits="1"/>
						<line number="119" hits="1"/>
						<line number="120" hits="1"/>
						<line number="125" hits="1"/>
						<line number="127" hits="1"/>
						<line number="128" hits="1"/>
						<line number="131" hits="1"/>
						<line number="132" hits="1"/>
						<line number="133" hits="1"/>
						<line number="134" hits="1"/>
						<line number="135" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="136" hits="1"/>
						<line number="138" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="143" hits="1"/>
						<line number="147" hits="1"/>
						<line number="151" hits="1"/>
						<line number="152" hits="1"/>
						<line number="160" hits="1"/>
						<line number="162" hits="1"/>
						<line number="169" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="170" hits="1"/>
						<line number="172" hits="1"/>
						<line number="173" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="174" hits="1"/>
						<line number="176" hits="1"/>
						<line number="177" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="180" hits="1"/>
						<line number="182" hits="1"/>
						<line number="185" hits="1"/>
						<line number="186" hits="1"/>
						<line number="187" hits="1"/>
						<line number="188" hits="1"/>
						<line number="189" hits="1"/>
						<line number="191" hits="1"/>
						<line number="193" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="194" hits="1"/>
						<line number="195" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="196" hits="1"/>
						<line number="198" hits="1"/>
						<line number="199" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="200" hits="1"/>
						<line number="202" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="203" hits="1"/>
						<line number="204" hits="1"/>
						<line number="205" hits="1"/>
						<line number="208" hits="1"/>
						<line number="209" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="210" hits="1"/>
						<line number="212" hits="1"/>
						<line number="213" hits="1"/>
						<line number="215" hits="1"/>
						<line number="216" hits="1"/>
						<line number="218" hits="1"/>
						<line number="219" hits="1"/>
						<line number="220" hits="1"/>
						<line number="222" hits="1"/>
						<line number="223" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="228" hits="1"/>
						<line number="231" hits="1"/>
						<line number="234" hits="1"/>
						<line number="236" hits="1"/>
						<line number="237" hits="1"/>
						<line number="238" hits="1"/>
						<line number="240" hits="1"/>
						<line number="241" hits="1"/>
						<line number="242" hits="1"/>
						<line number="243" hits="1"/>
						<line number="244" hits="1"/>
						<line number="246" hits="1"/>
						<line number="247" hits="1"/>
						<line number="248" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="249" hits="1"/>
						<line number="250" hits="1"/>
						<line number="251" hits="1"/>
						<line number="252" hits="1"/>
						<line number="254" hits="1"/>
						<line number="256" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="258" hits="1"/>
						<line number="259" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="260" hits="1"/>
						<line number="262" hits="1"/>
						<line number="263" hits="1"/>
						<line number="265" hits="1"/>
						<line number="267" hits="1"/>
						<line number="271" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="273" hits="1"/>
						<line number="274" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="275" hits="1"/>
						<line number="276" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="277" hits="1"/>
						<line number="278" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="280" hits="1"/>
						<line number="282" hits="1"/>
						<line number="288" hits="1"/>
						<line number="294" hits="1"/>
						<line number="295" hits="1"/>
					</lines>
				</class>
				<class name="error.py" filename="src/aliasing/error.py" complexity="0" line-rate="1" branch-rate="1">
					<methods/>
					<lines>
						<line number="1" hits="1"/>
						<line number="2" hits="1"/>
						<line number="5" hits="1"/>
						<line number="6" hits="1"/>
						<line number="9" hits="1"/>
						<line number="12" hits="1"/>
						<line number="15" hits="1"/>
						<line number="18" hits="1"/>
						<line number="21" hits="1"/>
						<line number="27" hits="1"/>
					</lines>
				</class>
				<class name="virtual_alias.py" filename="src/aliasing/virtual_alias.py" complexity="0" line-rate="1" branch-rate="1">
					<methods/>
					<lines>
						<line number="1" hits="1"/>
						<line number="2" hits="1"/>
						<line number="4" hits="1"/>
						<line number="5" hits="1"/>
						<line number="8" hits="1"/>
						<line number="16" hits="1"/>
						<line number="19" hits="1"/>
						<line number="20" hits="1"/>
						<line number="21" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="28" hits="1"/>
						<line number="29" hits="1"/>
						<line number="30" hits="1"/>
						<line number="31" hits="1"/>
						<line number="32" hits="1"/>
						<line number="33" hits="1"/>
						<line number="34" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="35" hits="1"/>
						<line number="36" hits="1"/>
						<line number="37" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="38" hits="1"/>
						<line number="43" hits="1"/>
						<line number="44" hits="1"/>
						<line number="45" hits="1"/>
						<line number="49" hits="1"/>
						<line number="51" hits="1"/>
						<line number="52" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="53" hits="1"/>
						<line number="54" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="55" hits="1"/>
						<line number="58" hits="1"/>
						<line number="67" hits="1"/>
						<line number="68" hits="1"/>
						<line number="69" hits="1"/>
						<line number="71" hits="1"/>
						<line number="72" hits="1"/>
					</lines>
				</class>
			</classes>
		</package>
	</packages>
</coverage>
Flake8 Report
4     E501 line too long (84 > 79 characters)
1     W604 backticks are deprecated, use 'repr()'

mxndtaylor and others added 4 commits June 9, 2024 15:19
…-attach-on-an-instance-of-a-class-without-modifying-the-class-itself' into feature/24-feature-allow-calling-attach-on-an-instance-of-a-class-without-modifying-the-class-itself
Copy link

Reports:

Test Report
<?xml version="1.0" encoding="utf-8"?><testsuites><testsuite name="pytest" errors="0" failures="0" skipped="0" tests="43" time="0.146" timestamp="2024-06-10T11:33:19.579563" hostname="fv-az1538-553"><testcase classname="tests.alias_test" name="test_alias_init" time="0.001" /><testcase classname="tests.alias_test" name="test_alias_get_prop" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_set_prop" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_doc" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_attach_to_instance" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_attach_to_class_non_isolated" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_attach_to_instance_no_second_dynamic_class" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_attach_err" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_attach_name_on_attach" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_attach_no_owner_err" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_trample_on_attach_err" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_trample_on_attach_warning" time="0.000" /><testcase classname="tests.alias_test.TestCircAlias" name="test_alias_chain_no_err" time="0.001" /><testcase classname="tests.alias_test.TestCircAlias" name="test_len_2_circle" time="0.000" /><testcase classname="tests.alias_test.TestCircAlias" name="test_len_1_circle" time="0.000" /><testcase classname="tests.alias_test.TestCircAlias" name="test_len_3_circle" time="0.000" /><testcase classname="tests.alias_test.TestCircAlias" name="test_reference_to_circle" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_prop_alias" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_second_prop_alias" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_prop_pascal_case" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_prop_doc" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_aliased_method" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_aliased_method_alias" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_method_pascal_case" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_aliased_method_doc" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_aliased_method_doc_with_nested" time="0.001" /><testcase classname="tests.aliased_test.TestAliased" name="test_nested_alias" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_alias_of_nested_alias" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_aliased_class" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_aliased_class_alias" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_snake_case_class_alias" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_aliased_class_methods" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_aliased_static_methods" time="0.000" /><testcase classname="tests.aliased_test" name="test_static_method_py39_workaround" time="0.000" /><testcase classname="tests.aliased_test" name="test_static_method_no_name_found" time="0.000" /><testcase classname="tests.aliased_test" name="test_aliased_aliased" time="0.000" /><testcase classname="tests.aliased_test" name="test_aliased_aliased_nontrivial" time="0.000" /><testcase classname="tests.aliased_test" name="test_returning_aliased_descriptor_object_from_cls" time="0.000" /><testcase classname="tests.virtual_alias_test" name="test_valiases_dir" time="0.000" /><testcase classname="tests.virtual_alias_test" name="test_valias_dict" time="0.000" /><testcase classname="tests.virtual_alias_test" name="test_valiases" time="0.000" /><testcase classname="tests.virtual_alias_test" name="test_valias_trample_warning" time="0.000" /><testcase classname="tests.virtual_alias_test" name="test_valias_trample_err" time="0.001" /></testsuite></testsuites>
Coverage Report
<?xml version="1.0" ?>
<coverage version="7.5.1" timestamp="1718019200871" lines-valid="197" lines-covered="196" line-rate="0.9949" branches-valid="66" branches-covered="65" branch-rate="0.9848" complexity="0">
	<!-- Generated by coverage.py: https://coverage.readthedocs.io/en/7.5.1 -->
	<!-- Based on https://raw.githubusercontent.com/cobertura/web/master/htdocs/xml/coverage-04.dtd -->
	<sources>
		<source>/home/runner/work/aliasing/aliasing</source>
	</sources>
	<packages>
		<package name="src.aliasing" line-rate="0.9949" branch-rate="0.9848" complexity="0">
			<classes>
				<class name="__init__.py" filename="src/aliasing/__init__.py" complexity="0" line-rate="1" branch-rate="1">
					<methods/>
					<lines>
						<line number="1" hits="1"/>
						<line number="2" hits="1"/>
						<line number="3" hits="1"/>
						<line number="10" hits="1"/>
					</lines>
				</class>
				<class name="core.py" filename="src/aliasing/core.py" complexity="0" line-rate="0.9932" branch-rate="0.9821">
					<methods/>
					<lines>
						<line number="1" hits="1"/>
						<line number="2" hits="1"/>
						<line number="3" hits="1"/>
						<line number="5" hits="1"/>
						<line number="8" hits="1"/>
						<line number="9" hits="1"/>
						<line number="17" hits="1"/>
						<line number="20" hits="1"/>
						<line number="21" hits="1"/>
						<line number="22" hits="1"/>
						<line number="23" hits="1"/>
						<line number="25" hits="1"/>
						<line number="26" hits="1"/>
						<line number="28" hits="1"/>
						<line number="29" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="32" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="37" hits="1"/>
						<line number="38" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="43" hits="1"/>
						<line number="44" hits="1"/>
						<line number="46" hits="1"/>
						<line number="48" hits="1"/>
						<line number="49" hits="1"/>
						<line number="51" hits="1"/>
						<line number="52" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="53" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="54" hits="1"/>
						<line number="57" hits="1"/>
						<line number="60" hits="1"/>
						<line number="68" hits="1"/>
						<line number="69" hits="1"/>
						<line number="71" hits="1"/>
						<line number="72" hits="1"/>
						<line number="73" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="79" hits="1"/>
						<line number="81" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="83"/>
						<line number="83" hits="0"/>
						<line number="84" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="86" hits="1"/>
						<line number="87" hits="1"/>
						<line number="88" hits="1"/>
						<line number="89" hits="1"/>
						<line number="92" hits="1"/>
						<line number="94" hits="1"/>
						<line number="96" hits="1"/>
						<line number="97" hits="1"/>
						<line number="101" hits="1"/>
						<line number="104" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="105" hits="1"/>
						<line number="109" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="110" hits="1"/>
						<line number="114" hits="1"/>
						<line number="116" hits="1"/>
						<line number="121" hits="1"/>
						<line number="122" hits="1"/>
						<line number="127" hits="1"/>
						<line number="129" hits="1"/>
						<line number="132" hits="1"/>
						<line number="135" hits="1"/>
						<line number="136" hits="1"/>
						<line number="137" hits="1"/>
						<line number="138" hits="1"/>
						<line number="139" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="140" hits="1"/>
						<line number="142" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="149" hits="1"/>
						<line number="157" hits="1"/>
						<line number="163" hits="1"/>
						<line number="164" hits="1"/>
						<line number="172" hits="1"/>
						<line number="174" hits="1"/>
						<line number="181" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="182" hits="1"/>
						<line number="184" hits="1"/>
						<line number="185" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="186" hits="1"/>
						<line number="188" hits="1"/>
						<line number="189" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="192" hits="1"/>
						<line number="194" hits="1"/>
						<line number="197" hits="1"/>
						<line number="198" hits="1"/>
						<line number="199" hits="1"/>
						<line number="200" hits="1"/>
						<line number="201" hits="1"/>
						<line number="203" hits="1"/>
						<line number="205" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="206" hits="1"/>
						<line number="207" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="208" hits="1"/>
						<line number="210" hits="1"/>
						<line number="211" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="212" hits="1"/>
						<line number="214" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="215" hits="1"/>
						<line number="216" hits="1"/>
						<line number="217" hits="1"/>
						<line number="220" hits="1"/>
						<line number="221" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="222" hits="1"/>
						<line number="224" hits="1"/>
						<line number="225" hits="1"/>
						<line number="227" hits="1"/>
						<line number="228" hits="1"/>
						<line number="230" hits="1"/>
						<line number="231" hits="1"/>
						<line number="232" hits="1"/>
						<line number="234" hits="1"/>
						<line number="235" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="240" hits="1"/>
						<line number="243" hits="1"/>
						<line number="246" hits="1"/>
						<line number="248" hits="1"/>
						<line number="249" hits="1"/>
						<line number="250" hits="1"/>
						<line number="252" hits="1"/>
						<line number="253" hits="1"/>
						<line number="254" hits="1"/>
						<line number="255" hits="1"/>
						<line number="256" hits="1"/>
						<line number="258" hits="1"/>
						<line number="259" hits="1"/>
						<line number="260" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="261" hits="1"/>
						<line number="262" hits="1"/>
						<line number="263" hits="1"/>
						<line number="264" hits="1"/>
						<line number="266" hits="1"/>
						<line number="268" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="270" hits="1"/>
						<line number="271" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="272" hits="1"/>
						<line number="274" hits="1"/>
						<line number="275" hits="1"/>
						<line number="277" hits="1"/>
						<line number="279" hits="1"/>
						<line number="286" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="288" hits="1"/>
						<line number="289" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="290" hits="1"/>
						<line number="291" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="292" hits="1"/>
						<line number="293" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="295" hits="1"/>
						<line number="297" hits="1"/>
						<line number="303" hits="1"/>
						<line number="309" hits="1"/>
						<line number="310" hits="1"/>
					</lines>
				</class>
				<class name="error.py" filename="src/aliasing/error.py" complexity="0" line-rate="1" branch-rate="1">
					<methods/>
					<lines>
						<line number="1" hits="1"/>
						<line number="2" hits="1"/>
						<line number="5" hits="1"/>
						<line number="6" hits="1"/>
						<line number="9" hits="1"/>
						<line number="12" hits="1"/>
						<line number="15" hits="1"/>
						<line number="18" hits="1"/>
						<line number="21" hits="1"/>
						<line number="27" hits="1"/>
					</lines>
				</class>
				<class name="virtual_alias.py" filename="src/aliasing/virtual_alias.py" complexity="0" line-rate="1" branch-rate="1">
					<methods/>
					<lines>
						<line number="1" hits="1"/>
						<line number="2" hits="1"/>
						<line number="4" hits="1"/>
						<line number="5" hits="1"/>
						<line number="8" hits="1"/>
						<line number="16" hits="1"/>
						<line number="19" hits="1"/>
						<line number="20" hits="1"/>
						<line number="21" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="28" hits="1"/>
						<line number="29" hits="1"/>
						<line number="30" hits="1"/>
						<line number="31" hits="1"/>
						<line number="32" hits="1"/>
						<line number="33" hits="1"/>
						<line number="34" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="35" hits="1"/>
						<line number="36" hits="1"/>
						<line number="37" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="38" hits="1"/>
						<line number="43" hits="1"/>
						<line number="44" hits="1"/>
						<line number="45" hits="1"/>
						<line number="49" hits="1"/>
						<line number="51" hits="1"/>
						<line number="52" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="53" hits="1"/>
						<line number="54" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="55" hits="1"/>
						<line number="58" hits="1"/>
						<line number="67" hits="1"/>
						<line number="68" hits="1"/>
						<line number="69" hits="1"/>
						<line number="71" hits="1"/>
						<line number="72" hits="1"/>
					</lines>
				</class>
			</classes>
		</package>
	</packages>
</coverage>
Flake8 Report
1     W604 backticks are deprecated, use 'repr()'

mxndtaylor and others added 3 commits June 10, 2024 11:33
…-attach-on-an-instance-of-a-class-without-modifying-the-class-itself' into feature/24-feature-allow-calling-attach-on-an-instance-of-a-class-without-modifying-the-class-itself
Copy link

Reports:

Test Report
<?xml version="1.0" encoding="utf-8"?><testsuites><testsuite name="pytest" errors="0" failures="0" skipped="0" tests="43" time="0.148" timestamp="2024-06-10T11:35:51.416596" hostname="fv-az1208-415"><testcase classname="tests.alias_test" name="test_alias_init" time="0.001" /><testcase classname="tests.alias_test" name="test_alias_get_prop" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_set_prop" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_doc" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_attach_to_instance" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_attach_to_class_non_isolated" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_attach_to_instance_no_second_dynamic_class" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_attach_err" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_attach_name_on_attach" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_attach_no_owner_err" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_trample_on_attach_err" time="0.000" /><testcase classname="tests.alias_test" name="test_alias_trample_on_attach_warning" time="0.000" /><testcase classname="tests.alias_test.TestCircAlias" name="test_alias_chain_no_err" time="0.001" /><testcase classname="tests.alias_test.TestCircAlias" name="test_len_2_circle" time="0.000" /><testcase classname="tests.alias_test.TestCircAlias" name="test_len_1_circle" time="0.000" /><testcase classname="tests.alias_test.TestCircAlias" name="test_len_3_circle" time="0.000" /><testcase classname="tests.alias_test.TestCircAlias" name="test_reference_to_circle" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_prop_alias" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_second_prop_alias" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_prop_pascal_case" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_prop_doc" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_aliased_method" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_aliased_method_alias" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_method_pascal_case" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_aliased_method_doc" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_aliased_method_doc_with_nested" time="0.001" /><testcase classname="tests.aliased_test.TestAliased" name="test_nested_alias" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_alias_of_nested_alias" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_aliased_class" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_aliased_class_alias" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_snake_case_class_alias" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_aliased_class_methods" time="0.000" /><testcase classname="tests.aliased_test.TestAliased" name="test_aliased_static_methods" time="0.000" /><testcase classname="tests.aliased_test" name="test_static_method_py39_workaround" time="0.000" /><testcase classname="tests.aliased_test" name="test_static_method_no_name_found" time="0.000" /><testcase classname="tests.aliased_test" name="test_aliased_aliased" time="0.000" /><testcase classname="tests.aliased_test" name="test_aliased_aliased_nontrivial" time="0.000" /><testcase classname="tests.aliased_test" name="test_returning_aliased_descriptor_object_from_cls" time="0.000" /><testcase classname="tests.virtual_alias_test" name="test_valiases_dir" time="0.000" /><testcase classname="tests.virtual_alias_test" name="test_valias_dict" time="0.000" /><testcase classname="tests.virtual_alias_test" name="test_valiases" time="0.000" /><testcase classname="tests.virtual_alias_test" name="test_valias_trample_warning" time="0.000" /><testcase classname="tests.virtual_alias_test" name="test_valias_trample_err" time="0.001" /></testsuite></testsuites>
Coverage Report
<?xml version="1.0" ?>
<coverage version="7.5.1" timestamp="1718019352713" lines-valid="197" lines-covered="196" line-rate="0.9949" branches-valid="66" branches-covered="65" branch-rate="0.9848" complexity="0">
	<!-- Generated by coverage.py: https://coverage.readthedocs.io/en/7.5.1 -->
	<!-- Based on https://raw.githubusercontent.com/cobertura/web/master/htdocs/xml/coverage-04.dtd -->
	<sources>
		<source>/home/runner/work/aliasing/aliasing</source>
	</sources>
	<packages>
		<package name="src.aliasing" line-rate="0.9949" branch-rate="0.9848" complexity="0">
			<classes>
				<class name="__init__.py" filename="src/aliasing/__init__.py" complexity="0" line-rate="1" branch-rate="1">
					<methods/>
					<lines>
						<line number="1" hits="1"/>
						<line number="2" hits="1"/>
						<line number="3" hits="1"/>
						<line number="10" hits="1"/>
					</lines>
				</class>
				<class name="core.py" filename="src/aliasing/core.py" complexity="0" line-rate="0.9932" branch-rate="0.9821">
					<methods/>
					<lines>
						<line number="1" hits="1"/>
						<line number="2" hits="1"/>
						<line number="3" hits="1"/>
						<line number="5" hits="1"/>
						<line number="8" hits="1"/>
						<line number="9" hits="1"/>
						<line number="17" hits="1"/>
						<line number="20" hits="1"/>
						<line number="21" hits="1"/>
						<line number="22" hits="1"/>
						<line number="23" hits="1"/>
						<line number="25" hits="1"/>
						<line number="26" hits="1"/>
						<line number="28" hits="1"/>
						<line number="29" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="32" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="37" hits="1"/>
						<line number="38" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="43" hits="1"/>
						<line number="44" hits="1"/>
						<line number="46" hits="1"/>
						<line number="48" hits="1"/>
						<line number="49" hits="1"/>
						<line number="51" hits="1"/>
						<line number="52" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="53" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="54" hits="1"/>
						<line number="57" hits="1"/>
						<line number="60" hits="1"/>
						<line number="68" hits="1"/>
						<line number="69" hits="1"/>
						<line number="71" hits="1"/>
						<line number="72" hits="1"/>
						<line number="73" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="79" hits="1"/>
						<line number="81" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="83"/>
						<line number="83" hits="0"/>
						<line number="84" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="86" hits="1"/>
						<line number="87" hits="1"/>
						<line number="88" hits="1"/>
						<line number="89" hits="1"/>
						<line number="92" hits="1"/>
						<line number="94" hits="1"/>
						<line number="96" hits="1"/>
						<line number="97" hits="1"/>
						<line number="101" hits="1"/>
						<line number="104" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="105" hits="1"/>
						<line number="109" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="110" hits="1"/>
						<line number="114" hits="1"/>
						<line number="116" hits="1"/>
						<line number="121" hits="1"/>
						<line number="122" hits="1"/>
						<line number="127" hits="1"/>
						<line number="129" hits="1"/>
						<line number="132" hits="1"/>
						<line number="135" hits="1"/>
						<line number="136" hits="1"/>
						<line number="137" hits="1"/>
						<line number="138" hits="1"/>
						<line number="139" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="140" hits="1"/>
						<line number="142" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="149" hits="1"/>
						<line number="157" hits="1"/>
						<line number="163" hits="1"/>
						<line number="164" hits="1"/>
						<line number="172" hits="1"/>
						<line number="174" hits="1"/>
						<line number="181" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="182" hits="1"/>
						<line number="184" hits="1"/>
						<line number="185" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="186" hits="1"/>
						<line number="188" hits="1"/>
						<line number="189" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="192" hits="1"/>
						<line number="194" hits="1"/>
						<line number="197" hits="1"/>
						<line number="198" hits="1"/>
						<line number="199" hits="1"/>
						<line number="200" hits="1"/>
						<line number="201" hits="1"/>
						<line number="203" hits="1"/>
						<line number="205" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="206" hits="1"/>
						<line number="207" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="208" hits="1"/>
						<line number="210" hits="1"/>
						<line number="211" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="212" hits="1"/>
						<line number="214" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="215" hits="1"/>
						<line number="216" hits="1"/>
						<line number="217" hits="1"/>
						<line number="220" hits="1"/>
						<line number="221" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="222" hits="1"/>
						<line number="224" hits="1"/>
						<line number="225" hits="1"/>
						<line number="227" hits="1"/>
						<line number="228" hits="1"/>
						<line number="230" hits="1"/>
						<line number="231" hits="1"/>
						<line number="232" hits="1"/>
						<line number="234" hits="1"/>
						<line number="235" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="240" hits="1"/>
						<line number="243" hits="1"/>
						<line number="246" hits="1"/>
						<line number="248" hits="1"/>
						<line number="249" hits="1"/>
						<line number="250" hits="1"/>
						<line number="252" hits="1"/>
						<line number="253" hits="1"/>
						<line number="254" hits="1"/>
						<line number="255" hits="1"/>
						<line number="256" hits="1"/>
						<line number="258" hits="1"/>
						<line number="259" hits="1"/>
						<line number="260" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="261" hits="1"/>
						<line number="262" hits="1"/>
						<line number="263" hits="1"/>
						<line number="264" hits="1"/>
						<line number="266" hits="1"/>
						<line number="268" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="270" hits="1"/>
						<line number="271" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="272" hits="1"/>
						<line number="274" hits="1"/>
						<line number="275" hits="1"/>
						<line number="277" hits="1"/>
						<line number="279" hits="1"/>
						<line number="286" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="288" hits="1"/>
						<line number="289" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="290" hits="1"/>
						<line number="291" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="292" hits="1"/>
						<line number="293" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="295" hits="1"/>
						<line number="297" hits="1"/>
						<line number="303" hits="1"/>
						<line number="309" hits="1"/>
						<line number="310" hits="1"/>
					</lines>
				</class>
				<class name="error.py" filename="src/aliasing/error.py" complexity="0" line-rate="1" branch-rate="1">
					<methods/>
					<lines>
						<line number="1" hits="1"/>
						<line number="2" hits="1"/>
						<line number="5" hits="1"/>
						<line number="6" hits="1"/>
						<line number="9" hits="1"/>
						<line number="12" hits="1"/>
						<line number="15" hits="1"/>
						<line number="18" hits="1"/>
						<line number="21" hits="1"/>
						<line number="27" hits="1"/>
					</lines>
				</class>
				<class name="virtual_alias.py" filename="src/aliasing/virtual_alias.py" complexity="0" line-rate="1" branch-rate="1">
					<methods/>
					<lines>
						<line number="1" hits="1"/>
						<line number="2" hits="1"/>
						<line number="4" hits="1"/>
						<line number="5" hits="1"/>
						<line number="8" hits="1"/>
						<line number="16" hits="1"/>
						<line number="19" hits="1"/>
						<line number="20" hits="1"/>
						<line number="21" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="28" hits="1"/>
						<line number="29" hits="1"/>
						<line number="30" hits="1"/>
						<line number="31" hits="1"/>
						<line number="32" hits="1"/>
						<line number="33" hits="1"/>
						<line number="34" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="35" hits="1"/>
						<line number="36" hits="1"/>
						<line number="37" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="38" hits="1"/>
						<line number="43" hits="1"/>
						<line number="44" hits="1"/>
						<line number="45" hits="1"/>
						<line number="49" hits="1"/>
						<line number="51" hits="1"/>
						<line number="52" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="53" hits="1"/>
						<line number="54" hits="1" branch="true" condition-coverage="100% (2/2)"/>
						<line number="55" hits="1"/>
						<line number="58" hits="1"/>
						<line number="67" hits="1"/>
						<line number="68" hits="1"/>
						<line number="69" hits="1"/>
						<line number="71" hits="1"/>
						<line number="72" hits="1"/>
					</lines>
				</class>
			</classes>
		</package>
	</packages>
</coverage>
Flake8 Report

@mxndtaylor mxndtaylor merged commit 3bfe44e into develop Jun 10, 2024
1 check passed
@mxndtaylor mxndtaylor deleted the feature/24-feature-allow-calling-attach-on-an-instance-of-a-class-without-modifying-the-class-itself branch June 10, 2024 11:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Feature: allow calling attach on an instance of a class without modifying the class itself
1 participant