Nuitka-winsvc 1.6.6__cp310-cp310-win_amd64.whl → 1.7.5__cp310-cp310-win_amd64.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.
- {Nuitka_winsvc-1.6.6.dist-info → Nuitka_winsvc-1.7.5.dist-info}/METADATA +1 -1
- {Nuitka_winsvc-1.6.6.dist-info → Nuitka_winsvc-1.7.5.dist-info}/RECORD +84 -81
- nuitka/Builtins.py +7 -1
- nuitka/MainControl.py +4 -0
- nuitka/OptionParsing.py +5 -3
- nuitka/Options.py +17 -2
- nuitka/Serialization.py +28 -5
- nuitka/Version.py +2 -2
- nuitka/build/Backend.scons +16 -3
- nuitka/build/CCompilerVersion.scons +1 -1
- nuitka/build/DataComposerInterface.py +15 -9
- nuitka/build/Onefile.scons +1 -1
- nuitka/build/SconsCompilerSettings.py +1 -0
- nuitka/build/SconsProgress.py +11 -2
- nuitka/build/SconsSpawn.py +15 -15
- nuitka/build/include/nuitka/builtins.h +2 -0
- nuitka/build/include/nuitka/filesystem_paths.h +4 -0
- nuitka/build/include/nuitka/helper/attributes.h +3 -0
- nuitka/build/include/nuitka/helper/import_hard.h +6 -0
- nuitka/build/include/nuitka/helpers.h +1 -1
- nuitka/build/include/nuitka/safe_string_ops.h +10 -3
- nuitka/build/static_src/CompiledCodeHelpers.c +0 -200
- nuitka/build/static_src/HelpersAttributes.c +185 -8
- nuitka/build/static_src/HelpersFilesystemPaths.c +528 -7
- nuitka/build/static_src/HelpersImportHard.c +38 -0
- nuitka/build/static_src/HelpersSafeStrings.c +6 -278
- nuitka/build/static_src/MainProgram.c +273 -73
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +6 -0
- nuitka/build/static_src/OnefileBootstrap.c +19 -36
- nuitka/build/static_src/OnefileSplashScreen.cpp +1 -0
- nuitka/code_generation/AttributeCodes.py +42 -23
- nuitka/code_generation/CodeGeneration.py +4 -0
- nuitka/code_generation/FunctionCodes.py +18 -3
- nuitka/code_generation/GlobalConstants.py +8 -1
- nuitka/code_generation/PackageResourceCodes.py +40 -0
- nuitka/code_generation/templates/CodeTemplatesModules.py +1 -7
- nuitka/freezer/DllDependenciesMacOS.py +18 -1
- nuitka/freezer/IncludedDataFiles.py +6 -10
- nuitka/importing/ImportResolving.py +6 -0
- nuitka/importing/Recursion.py +24 -68
- nuitka/nodes/AttributeNodes.py +72 -19
- nuitka/nodes/ChildrenHavingMixins.py +203 -234
- nuitka/nodes/ExpressionBasesGenerated.py +136 -0
- nuitka/nodes/HardImportNodesGenerated.py +94 -0
- nuitka/nodes/ImportHardNodes.py +3 -3
- nuitka/nodes/ImportNodes.py +14 -4
- nuitka/nodes/ModuleNodes.py +4 -2
- nuitka/nodes/PackageMetadataNodes.py +12 -10
- nuitka/nodes/PackageResourceNodes.py +115 -0
- nuitka/nodes/TypeNodes.py +5 -1
- nuitka/plugins/PluginBase.py +32 -8
- nuitka/plugins/Plugins.py +44 -7
- nuitka/plugins/standard/AntiBloatPlugin.py +166 -72
- nuitka/plugins/standard/DataFilesPlugin.py +10 -0
- nuitka/plugins/standard/DllFilesPlugin.py +1 -2
- nuitka/plugins/standard/MatplotlibPlugin.py +24 -22
- nuitka/plugins/standard/MultiprocessingPlugin.py +5 -12
- nuitka/plugins/standard/OptionsNannyPlugin.py +2 -2
- nuitka/plugins/standard/PySidePyQtPlugin.py +18 -6
- nuitka/plugins/standard/PywebViewPlugin.py +4 -2
- nuitka/plugins/standard/TkinterPlugin.py +3 -0
- nuitka/plugins/standard/TransformersPlugin.py +11 -1
- nuitka/plugins/standard/TrioPlugin.py +6 -66
- nuitka/plugins/standard/standard.nuitka-package.config.yml +367 -21
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +16 -4
- nuitka/specs/HardImportSpecs.py +6 -0
- nuitka/tools/data_composer/DataComposer.py +25 -27
- nuitka/tools/general/find_module/FindModuleCode.py +5 -2
- nuitka/tools/podman/Podman.py +53 -0
- nuitka/tools/podman/__init__.py +18 -0
- nuitka/tools/podman/__main__.py +255 -0
- nuitka/tools/specialize/SpecializePython.py +37 -3
- nuitka/tools/testing/RuntimeTracing.py +4 -0
- nuitka/tree/Building.py +1 -1
- nuitka/tree/ReformulationFunctionStatements.py +137 -10
- nuitka/utils/Execution.py +11 -1
- nuitka/utils/ModuleNames.py +1 -1
- nuitka/utils/SharedLibraries.py +7 -7
- {Nuitka_winsvc-1.6.6.data → Nuitka_winsvc-1.7.5.data}/scripts/nuitka-run.bat +0 -0
- {Nuitka_winsvc-1.6.6.data → Nuitka_winsvc-1.7.5.data}/scripts/nuitka.bat +0 -0
- {Nuitka_winsvc-1.6.6.dist-info → Nuitka_winsvc-1.7.5.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-1.6.6.dist-info → Nuitka_winsvc-1.7.5.dist-info}/WHEEL +0 -0
- {Nuitka_winsvc-1.6.6.dist-info → Nuitka_winsvc-1.7.5.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-1.6.6.dist-info → Nuitka_winsvc-1.7.5.dist-info}/top_level.txt +0 -0
|
@@ -242,7 +242,7 @@ PyObject *LOOKUP_ATTRIBUTE(PyObject *source, PyObject *attr_name) {
|
|
|
242
242
|
return NULL;
|
|
243
243
|
}
|
|
244
244
|
#if PYTHON_VERSION < 0x300
|
|
245
|
-
else if (type->tp_getattro == PyInstance_Type.tp_getattro) {
|
|
245
|
+
else if (type->tp_getattro == PyInstance_Type.tp_getattro && Nuitka_String_CheckExact(attr_name)) {
|
|
246
246
|
PyObject *result = LOOKUP_INSTANCE(source, attr_name);
|
|
247
247
|
return result;
|
|
248
248
|
}
|
|
@@ -535,13 +535,10 @@ int BUILTIN_HASATTR_BOOL(PyObject *source, PyObject *attr_name) {
|
|
|
535
535
|
PyObject *value = PyObject_GetAttr(source, attr_name);
|
|
536
536
|
|
|
537
537
|
if (value == NULL) {
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
if (had_attribute_error) {
|
|
541
|
-
return 0;
|
|
542
|
-
} else {
|
|
538
|
+
if (CHECK_AND_CLEAR_ATTRIBUTE_ERROR_OCCURRED() == false) {
|
|
543
539
|
return -1;
|
|
544
540
|
}
|
|
541
|
+
return 0;
|
|
545
542
|
}
|
|
546
543
|
|
|
547
544
|
Py_DECREF(value);
|
|
@@ -589,6 +586,7 @@ bool HAS_ATTR_BOOL(PyObject *source, PyObject *attr_name) {
|
|
|
589
586
|
}
|
|
590
587
|
|
|
591
588
|
DROP_ERROR_OCCURRED();
|
|
589
|
+
return false;
|
|
592
590
|
}
|
|
593
591
|
}
|
|
594
592
|
}
|
|
@@ -622,6 +620,7 @@ bool HAS_ATTR_BOOL(PyObject *source, PyObject *attr_name) {
|
|
|
622
620
|
Py_INCREF(dict);
|
|
623
621
|
|
|
624
622
|
PyObject *result = DICT_GET_ITEM1(dict, attr_name);
|
|
623
|
+
DROP_ERROR_OCCURRED();
|
|
625
624
|
|
|
626
625
|
Py_DECREF(dict);
|
|
627
626
|
|
|
@@ -646,7 +645,10 @@ bool HAS_ATTR_BOOL(PyObject *source, PyObject *attr_name) {
|
|
|
646
645
|
return true;
|
|
647
646
|
}
|
|
648
647
|
|
|
649
|
-
|
|
648
|
+
if (CHECK_AND_CLEAR_ATTRIBUTE_ERROR_OCCURRED() == false) {
|
|
649
|
+
return -1;
|
|
650
|
+
}
|
|
651
|
+
return 0;
|
|
650
652
|
}
|
|
651
653
|
|
|
652
654
|
if (descr != NULL) {
|
|
@@ -659,7 +661,7 @@ bool HAS_ATTR_BOOL(PyObject *source, PyObject *attr_name) {
|
|
|
659
661
|
return false;
|
|
660
662
|
}
|
|
661
663
|
#if PYTHON_VERSION < 0x300
|
|
662
|
-
else if (type->tp_getattro == PyInstance_Type.tp_getattro) {
|
|
664
|
+
else if (type->tp_getattro == PyInstance_Type.tp_getattro && Nuitka_String_CheckExact(attr_name)) {
|
|
663
665
|
PyObject *result = LOOKUP_INSTANCE(source, attr_name);
|
|
664
666
|
|
|
665
667
|
if (result == NULL) {
|
|
@@ -704,6 +706,181 @@ bool HAS_ATTR_BOOL(PyObject *source, PyObject *attr_name) {
|
|
|
704
706
|
#endif
|
|
705
707
|
}
|
|
706
708
|
|
|
709
|
+
int HAS_ATTR_BOOL2(PyObject *source, PyObject *attr_name) {
|
|
710
|
+
CHECK_OBJECT(source);
|
|
711
|
+
CHECK_OBJECT(attr_name);
|
|
712
|
+
|
|
713
|
+
#if _NUITKA_EXPERIMENTAL_DISABLE_ATTR_OPT
|
|
714
|
+
PyObject *result = PyObject_GetAttr(source, attr_name);
|
|
715
|
+
|
|
716
|
+
if (result == NULL) {
|
|
717
|
+
return -1;
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
return CHECK_IF_TRUE(result) = 1 : 0;
|
|
721
|
+
#else
|
|
722
|
+
PyTypeObject *type = Py_TYPE(source);
|
|
723
|
+
|
|
724
|
+
if (hasTypeGenericGetAttr(type)) {
|
|
725
|
+
// Unfortunately this is required, although of cause rarely necessary.
|
|
726
|
+
if (unlikely(type->tp_dict == NULL)) {
|
|
727
|
+
if (unlikely(PyType_Ready(type) < 0)) {
|
|
728
|
+
return -1;
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
PyObject *descr = Nuitka_TypeLookup(type, attr_name);
|
|
733
|
+
descrgetfunc func = NULL;
|
|
734
|
+
|
|
735
|
+
if (descr != NULL) {
|
|
736
|
+
// Hold a refcount, Nuitka_TypeLookup does not give any.
|
|
737
|
+
Py_INCREF(descr);
|
|
738
|
+
|
|
739
|
+
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
740
|
+
func = Py_TYPE(descr)->tp_descr_get;
|
|
741
|
+
|
|
742
|
+
if (func != NULL && PyDescr_IsData(descr)) {
|
|
743
|
+
PyObject *result = func(descr, source, (PyObject *)type);
|
|
744
|
+
Py_DECREF(descr);
|
|
745
|
+
|
|
746
|
+
if (result) {
|
|
747
|
+
CHECK_OBJECT(result);
|
|
748
|
+
|
|
749
|
+
Py_DECREF(result);
|
|
750
|
+
return 1;
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
DROP_ERROR_OCCURRED();
|
|
754
|
+
return 0;
|
|
755
|
+
}
|
|
756
|
+
}
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
Py_ssize_t dict_offset = type->tp_dictoffset;
|
|
760
|
+
PyObject *dict = NULL;
|
|
761
|
+
|
|
762
|
+
if (dict_offset != 0) {
|
|
763
|
+
// Negative dictionary offsets have special meaning.
|
|
764
|
+
if (dict_offset < 0) {
|
|
765
|
+
Py_ssize_t tsize;
|
|
766
|
+
size_t size;
|
|
767
|
+
|
|
768
|
+
tsize = ((PyVarObject *)source)->ob_size;
|
|
769
|
+
if (tsize < 0) {
|
|
770
|
+
tsize = -tsize;
|
|
771
|
+
}
|
|
772
|
+
size = _PyObject_VAR_SIZE(type, tsize);
|
|
773
|
+
|
|
774
|
+
dict_offset += (long)size;
|
|
775
|
+
}
|
|
776
|
+
|
|
777
|
+
PyObject **dict_pointer = (PyObject **)((char *)source + dict_offset);
|
|
778
|
+
dict = *dict_pointer;
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
if (dict != NULL) {
|
|
782
|
+
CHECK_OBJECT(dict);
|
|
783
|
+
|
|
784
|
+
// TODO: If this is an exact dict, we don't have to hold a reference, is it?
|
|
785
|
+
Py_INCREF(dict);
|
|
786
|
+
|
|
787
|
+
PyObject *result = DICT_GET_ITEM1(dict, attr_name);
|
|
788
|
+
|
|
789
|
+
if (CHECK_AND_CLEAR_ATTRIBUTE_ERROR_OCCURRED() == false) {
|
|
790
|
+
return -1;
|
|
791
|
+
}
|
|
792
|
+
|
|
793
|
+
DROP_ERROR_OCCURRED();
|
|
794
|
+
|
|
795
|
+
Py_DECREF(dict);
|
|
796
|
+
|
|
797
|
+
if (result != NULL) {
|
|
798
|
+
Py_XDECREF(descr);
|
|
799
|
+
|
|
800
|
+
CHECK_OBJECT(result);
|
|
801
|
+
|
|
802
|
+
Py_DECREF(result);
|
|
803
|
+
return 1;
|
|
804
|
+
}
|
|
805
|
+
}
|
|
806
|
+
|
|
807
|
+
if (func != NULL) {
|
|
808
|
+
PyObject *result = func(descr, source, (PyObject *)type);
|
|
809
|
+
Py_DECREF(descr);
|
|
810
|
+
|
|
811
|
+
if (result != NULL) {
|
|
812
|
+
CHECK_OBJECT(result);
|
|
813
|
+
|
|
814
|
+
Py_DECREF(result);
|
|
815
|
+
return 1;
|
|
816
|
+
}
|
|
817
|
+
|
|
818
|
+
if (CHECK_AND_CLEAR_ATTRIBUTE_ERROR_OCCURRED() == false) {
|
|
819
|
+
return -1;
|
|
820
|
+
}
|
|
821
|
+
return 0;
|
|
822
|
+
}
|
|
823
|
+
|
|
824
|
+
if (descr != NULL) {
|
|
825
|
+
CHECK_OBJECT(descr);
|
|
826
|
+
|
|
827
|
+
Py_DECREF(descr);
|
|
828
|
+
return 1;
|
|
829
|
+
}
|
|
830
|
+
|
|
831
|
+
return 0;
|
|
832
|
+
}
|
|
833
|
+
#if PYTHON_VERSION < 0x300
|
|
834
|
+
else if (type->tp_getattro == PyInstance_Type.tp_getattro && Nuitka_String_CheckExact(attr_name)) {
|
|
835
|
+
PyObject *result = LOOKUP_INSTANCE(source, attr_name);
|
|
836
|
+
|
|
837
|
+
if (result == NULL) {
|
|
838
|
+
DROP_ERROR_OCCURRED();
|
|
839
|
+
|
|
840
|
+
return -1;
|
|
841
|
+
}
|
|
842
|
+
|
|
843
|
+
CHECK_OBJECT(result);
|
|
844
|
+
|
|
845
|
+
Py_DECREF(result);
|
|
846
|
+
return true;
|
|
847
|
+
}
|
|
848
|
+
#endif
|
|
849
|
+
else if (type->tp_getattro != NULL) {
|
|
850
|
+
PyObject *result = (*type->tp_getattro)(source, attr_name);
|
|
851
|
+
|
|
852
|
+
if (result == NULL) {
|
|
853
|
+
if (CHECK_AND_CLEAR_ATTRIBUTE_ERROR_OCCURRED() == false) {
|
|
854
|
+
return -1;
|
|
855
|
+
}
|
|
856
|
+
|
|
857
|
+
return 0;
|
|
858
|
+
}
|
|
859
|
+
|
|
860
|
+
CHECK_OBJECT(result);
|
|
861
|
+
Py_DECREF(result);
|
|
862
|
+
return true;
|
|
863
|
+
} else if (type->tp_getattr != NULL) {
|
|
864
|
+
PyObject *result = (*type->tp_getattr)(source, (char *)Nuitka_String_AsString_Unchecked(attr_name));
|
|
865
|
+
|
|
866
|
+
if (result == NULL) {
|
|
867
|
+
if (CHECK_AND_CLEAR_ATTRIBUTE_ERROR_OCCURRED() == false) {
|
|
868
|
+
return -1;
|
|
869
|
+
}
|
|
870
|
+
|
|
871
|
+
return 0;
|
|
872
|
+
}
|
|
873
|
+
|
|
874
|
+
CHECK_OBJECT(result);
|
|
875
|
+
Py_DECREF(result);
|
|
876
|
+
|
|
877
|
+
return 1;
|
|
878
|
+
} else {
|
|
879
|
+
return 0;
|
|
880
|
+
}
|
|
881
|
+
#endif
|
|
882
|
+
}
|
|
883
|
+
|
|
707
884
|
#if PYTHON_VERSION < 0x300
|
|
708
885
|
extern PyObject *CALL_FUNCTION_WITH_ARGS3(PyObject *called, PyObject *const *args);
|
|
709
886
|
|