Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-04-08Cleanup: separate format-units for Python argument parsingCampbell Barton
With the increased use of multi-character format units and keyword-only arguments these are increasingly difficult to make sense of. Split the string onto multiple lines, one per argument. While verbose it's easier to understand and add new arguments.
2022-03-23Cleanup: use ifdef to disable enum string allocationCampbell Barton
Restore variable removed in [0], using an ifdef to avoid the warning. [0]: c3ecfdf40b02f7d12775f1ded2f039d40f1470bb
2022-03-18Cleanup: Compilation warningsSergey Sharybin
Mainly -Wset-but-unused-variable. Makes default compilation on macOS way less noisy. Differential Revision: https://developer.blender.org/D14357
2022-03-14Auto-generate RNA-structs declarations in `RNA_prototypes.h`Julian Eisel
So far it was needed to declare a new RNA struct to `RNA_access.h` manually. Since 9b298cf3dbec we generate a `RNA_prototypes.h` for RNA property declarations. Now this also includes the RNA struct declarations, so they don't have to be added manually anymore. Differential Revision: https://developer.blender.org/D13862 Reviewed by: brecht, campbellbarton
2022-02-11File headers: SPDX License migrationCampbell Barton
Use a shorter/simpler license convention, stops the header taking so much space. Follow the SPDX license specification: https://spdx.org/licenses - C/C++/objc/objc++ - Python - Shell Scripts - CMake, GNUmakefile While most of the source tree has been included - `./extern/` was left out. - `./intern/cycles` & `./intern/atomic` are also excluded because they use different header conventions. doc/license/SPDX-license-identifiers.txt has been added to list SPDX all used identifiers. See P2788 for the script that automated these edits. Reviewed By: brecht, mont29, sergey Ref D14069
2022-01-18RNA: display exact integer values without fraction if step is integer.Alexander Gavrilov
Display exact integer values of a floating point fields without a fraction if the step is also an exact integer. This is intended for cases when the value can technically be fractional, but most commonly is supposed to be integer. This handling is not applied if the field has any unit except frames, because integer values aren't special for quantities like length. The fraction is discarded in the normal display mode and when copying the value to clipboard, but not when editing to remind the user that the field allows fractions. Differential Revision: https://developer.blender.org/D13753
2021-12-14Cleanup: correct unbalanced doxygen groupsCampbell Barton
Also add groups in some files.
2021-12-02Cleanup: move public doc-strings into headers for 'python'Campbell Barton
2021-11-25Merge branch 'blender-v3.0-release'Bastien Montagne
2021-11-25Fix Py API: wrong doc about type of Collection property.Bastien Montagne
Collection property only accepts PropertyGroup type, not ID ones. Reported on IRC by @frameshift, thanks.
2021-11-08Cleanup: Grammar in commentsHans Goudey
2021-10-03Cleanup: spelling in stringsCampbell Barton
2021-09-01Cleanup: move RNA utility functions into a generic moduleCampbell Barton
Avoid having to include bpy_rna.h for enum utility functions, recently added to idprop_py_ui_api.c.
2021-08-26Fix issues with absolute time unitPhilipp Oeser
I think there are the following issues with {rB5fa6cdb77a98}: - if we introduce a PROP_UNIT_TIME_ABSOLUTE unit, shouldnt it be visible to RNA as well? - seems like a double entry sneaked into that commit? This is in preparation to use this for render time limit in cycles-x. ref. T90701 Maniphest Tasks: T90701 Differential Revision: https://developer.blender.org/D12315
2021-07-30Cleanup: spelling in commentsCampbell Barton
2021-07-30PyAPI: defer freeing existing properties on registrationCampbell Barton
Registering a property could remove the existing property, then fail to parse one of the arguments of the new property - leaving the struct without a property. Now freeing the existing property is deferred until immediately before the new property is registered.
2021-07-30Cleanup: bpy.props variable namesCampbell Barton
- Use `default` instead of `def` abbreviation. - Rename `BPYPropArrayLength` to `BPyPropArrayLength` in keeping with other local structs. - Remove _PyArg_Parser.fname value accidentally left in (harmless as it's not used).
2021-07-30Cleanup: replace macros with converter callbacks for bpy.propsCampbell Barton
Macros were used for expanding shared logic for some properties. Replace this with Python converters & a funciton that handles deferred registration. Add generic converter functions for RNA enums: - pyrna_enum_value_parse_string - pyrna_enum_bitfield_parse_set
2021-07-29PyAPI: support multi-dimensional arrays for bpy.props vector typesCampbell Barton
- Multi-dimensional boolean, int and float vector types are supported. - A sequence of int's for the "size" is used to declare dimensions. - Nested sequences are required for default arguments. Now it's possible to define matrix properties, for e.g: bpy.props.FloatVectorProperty(size=(4, 4), subtype='MATRIX')
2021-07-28Cleanup: reduce indentation in bpy.propsCampbell Barton
Remove unnecessary NULL checks.
2021-07-27Fix memory leak with Python RNA property get callback errorsCampbell Barton
Failure to return a list of the expected size & type wasn't decrementing the value, leaking a reference. Caused by 127b5423d6203d521acb2b96b7de5534e8dbe79a a workaround for the real error that was fixed f5e020a7a6ad6451fcaf075ae14f7014b8a4faea.
2021-07-27Cleanup: pass sizeof array element to PyC_AsArrayCampbell Barton
Replace the is_double argument which was only used for single/double precision floats. This allows supporting different sized int types more easily.
2021-07-16Cleanup: remove redundant parenthesesCampbell Barton
2021-07-03Cleanup: consistent use of tags: NOTE/TODO/FIXME/XXXCampbell Barton
Also use doxy style function reference `#` prefix chars when referencing identifiers.
2021-06-22Cleanup: Spelling MistakesLeon Zandman
This patch fixes many minor spelling mistakes, all in comments or console output. Mostly contractions like can't, won't, don't, its/it's, etc. Differential Revision: https://developer.blender.org/D11663 Reviewed by Harley Acheson
2021-06-10Add unit for time stored in secondsSergey Sharybin
Allows to define properties which will have proper units displayed in the interface. The internal storage is expected to be seconds (which matches how other times are stored in Blender). Is not immediately used in Blender, but is required for the upcoming feature in Cycles X (D11526) The naming does not sound very exciting, but can't think of anything better either. For test it probably easiest to define FloatProperty with subdtype of TIME_ABSOLUTE. Differential Revision: https://developer.blender.org/D11532
2021-06-07Cleanup: use keyword only argument in bpy.props argument parsingCampbell Barton
No functional changes as logic elsewhere already ensured this. This just makes it obvious to anyone reading over the code that these arguments are keyword only.
2021-03-17Comments: document memory management for `BPyPropStore`Campbell Barton
2021-03-17PyAPI: use union to store pointer poll callbackCampbell Barton
Reduces `BPyPropStore` size by one pointer.
2021-03-16Cleanup: use doxy sections for 'bpy.props' moduleCampbell Barton
2021-03-16Cleanup: use _fn suffix in bpy.propsCampbell Barton
2021-03-16Fix T86332: Error using lambda in annotations in Python 3.10Campbell Barton
Callbacks used in `bpy.props` didn't hold a references to the functions they used. While this has been the case since early 2.5x it didn't cause any problems as long as the class held a reference. With Python 3.10 or when using `from __future__ import annotations`, the annotations are no longer owned by the class once evaluated. Resolve this by holding a reference in the module, which now supports traverse & clear callbacks so the objects are visible to Python's garbage collector. Also refactor storage of Python data, moving from an array into a struct.
2021-03-04Fix logic for calling PyObject_GC_UnTrackCampbell Barton
All tracked objects need a matching un-track, also remove redundant Py_XDECREF call.
2021-02-22PyAPI: expose unstable type bpy.props._PropertyDeferredCampbell Barton
Even though this might change, rigify, animation-nodes & translation extraction depend on being able to extract this information.
2021-02-21PyAPI: use postponed annotations to support Python 3.10Campbell Barton
Support Python 3.10a5 or 3.9x with support explicitly enabled. - Enable Python's postponed annotations for Blender's RNA classes types registered on startup. - Using postponed annotations has implications for how they are defined, since they must evaluate in the modules name-space instead of the classes name-space. See changes to annotations in `release/scripts`. - Use `from __future__ import annotations` at the top of the module to ensure the script will run with Python 3.10. - Old logic is kept since it could be used if PEP-649 is supported. Resolves T83626 Ref D10474
2021-02-21PyAPI: expose bpy_prop_deferred function & keywordsCampbell Barton
While not needed for Blender, Animation Nodes uses this information, expose this information for scripts to access that need it.
2021-02-20PyAPI: use a new type for storing the deferred result of bpy.propsCampbell Barton
This is needed to support Python 3.10's Postponed annotation evaluation. It also simplifies type checking.
2021-02-13Fix T85573: Building with Python 3.10a5 failsCampbell Barton
Replace deprecated _PyUnicode_AsString{AndSize} usage. T83626 still needs to be resolved before 3.10 is usable.
2020-12-15Cleanup: reduce indirect DNA header inclusionCampbell Barton
Remove DNA headers, using forward declarations where possible. Also removed duplicate header, header including it's self and unnecessary inclusion of libc system headers from BKE header.
2020-12-09Fix T83566: bpy.props.CollectionProperty gives incorrect errorCampbell Barton
Error in commit a7b3047cefcbfae4d8b13e15026497fd5ae92730.
2020-11-02Revert "Cleanup: store results of function calls in const values."Bastien Montagne
This reverts commit 20c4aa13de7ba403e113df8ec69c632b6815eac8. Wrong buggy commit breaking tests, and not actually adding anything to code quality.
2020-11-02Cleanup: store results of function calls in const values.Bastien Montagne
2020-10-29RNA properties subtypes enum: sync definitions everywherePhilipp Oeser
Some subtypes never made it to all neccessary places when they were introduced. This was throwing warnings when accessing such a properties subtype from python. The sub_type enums were also defined in 4 different places: - RNA_types.h 'PropertySubType' - rna_rna.c 'rna_enum_property_subtype_items' - rna_rna.c 'subtype_items' - bpy_props.c as multiple enums This patch syncs the definitions across all places so that they are the same everywhere. It also looks redundant to define these twice in rna_rna.c, now just use 'rna_enum_property_subtype_items' there (and get rid off 'subtype_items'). Also moved 'POWER' & 'TEMPERATURE' to number enum in bpy_props (these were defined in the array enum). Fixes T82167. Maniphest Tasks: T82167 Differential Revision: https://developer.blender.org/D9371
2020-09-21Add missing new liboverride option to py-defined collections props doc.Bastien Montagne
2020-09-20LibOverride: expose `PROPOVERRIDE_LIBRARY_INSERTION` to py-defined properties.Bastien Montagne
This will allow add-ons to define Collection properties that support item insertion in library override context.
2020-09-19Cleanup: use parenthesis for if statements in macrosCampbell Barton
2020-09-07UI: Add temperature unitsHans Goudey
Based on the original patch by Vaishnav S (@padthai), this adds support for temperature units. Initially supported units are Celsius, Kelvin, and Fahrenheit. The units aren't used anywhere with this commit. Those changes should happen in separate patches by adding PROP_TEMPERATURE to RNA property definitions. But it should be ensured that the various solvers and simulations actually properly use real units. The complexity of some of the changes comes from the fact that these units have offsets from each other as well as coefficients. This also makes the implementation in the current unit system troublesome. For example, entering 0C evaluates correctly to 273K, but 0C + 0C doubles that result, because each unit value is evaluated separately. This is quite hard to solve in the general case with Blender's current unit system, though, so it is not handled in this commit. Differential Revision: https://developer.blender.org/D4401
2020-09-02PY API doc: fix doc for new override option of properties.Bastien Montagne
Reported by Demeter Dzadik (@Mets) on blender.chat, thanks. Candidate to be backported to a potential 2.90.1.
2020-08-20Cleanup: use const variables where possible in the Python APICampbell Barton
2020-08-07Cleanup: Python, Clang-Tidy else-after-return fixesSybren A. Stüvel
This addresses warnings from Clang-Tidy's `readability-else-after-return` rule in the `source/blender/python` module. No functional changes.