Commit Graph

3165 Commits

Author SHA1 Message Date
1b80538fea fix [#25688] undocumted functions in pyapi
expose collection function docs.
2011-03-22 04:28:51 +00:00
2299d674f4 operators called from python were not getting their reports back into python errors.
eg:
- console calls operator
- operator calls report
- report went into header rather them back into the console as an error.
2011-03-22 02:38:39 +00:00
f3686b5885 py/api registration:
move calls to the classes register/unregister function into register_class() / unregister_class() and add docs.

also other minor changes:
- remove face sorting keybinding, was Ctrl+Alt+F, this is quite and obscure feature and face order normally doesn't matter, so access from Face menu is enough.
- add commented out call to mesh.validate() in addon template since its useful to correct incomplete meshes during development.
2011-03-22 01:38:26 +00:00
790e47768a fix for crash when running WM_OT_read_factory_settings() from a script and then importing. 2011-03-20 07:23:17 +00:00
cadc1218c8 C, style changes (mostly white space edits), no functional change. 2011-03-19 11:12:48 +00:00
197e903efc fix for [#26524] Api autocomplete more errors
problem was caused by change in python behavior, now hasattr(val, attr) only suppresses attribute exceptions.
2011-03-17 04:43:58 +00:00
3ac925b7d1 fix own error - missing NULL check [#26523] Crash when load factory settings ( linked to rigify add-on ? ) 2011-03-16 22:25:31 +00:00
dc5a78ac25 fix own error [#26522] Api autocomplete return many errors
collections were getting __call__ attribute from the StructRNA, now ignore all starting with '_'
2011-03-16 21:58:45 +00:00
fe529d43fe fix for building on some configurations. 2011-03-15 01:48:01 +00:00
f2b1645a75 fix/disallow [#26502] segmentationfault on pressing button to browse existing images for UV window
creating RNA within draw functions can free existing RNA, crashing blender when this is already used in the UI.
disallowing this so it raises a python exception.

This was being used to dynamically generate addon categories so for now they are hard coded and we need proper enum-functions for python to do this.
2011-03-14 23:02:47 +00:00
2d1ef275f2 bpy.types.libraries.load sphinx doc & examples (doc system needed some updates).
http://www.blender.org/documentation/blender_python_api_2_56_3/bpy.types.BlendDataLibraries.html#bpy.types.BlendDataLibraries.load
2011-03-14 10:31:50 +00:00
4a747bebf4 fix [#26489] Auto completion in console broken
own mistake in r35492.
2011-03-14 05:39:07 +00:00
e8174fb3cd move mathutils api changelog into wiki. 2011-03-14 05:03:53 +00:00
9ec2dfe0df add dir() function for library objects, also was missing call to clear temp flag on exceptions. 2011-03-14 01:00:41 +00:00
25a2eb4675 py/library api: raise an error if a requested member isn't found. 2011-03-13 01:15:14 +00:00
60a2994435 SVN maintenance. 2011-03-13 00:26:46 +00:00
8c526e79e3 library loading api.
this is not well suited to RNA so this is a native python api.

This uses:
  bpy.data.libraries.load(filepath, link=False, relative=False)

however the return value needs to use pythons context manager, this means the library loading is confined to a block of code and python cant leave a half loaded library state.


eg, load a single scene we know the name of:
  with bpy.data.libraries.load(filepath) as (data_from, data_to):
      data_to.scenes = ["Scene"]


eg, load all scenes:
  with bpy.data.libraries.load(filepath) as (data_from, data_to):
      data_to.scenes = data_from.scenes


eg, load all objects starting with 'A'
  with bpy.data.libraries.load(filepath) as (data_from, data_to):
      data_to.objects = [name for name in data_from.objects if name.startswith("A")]

As you can see gives 2 objects like 'bpy.data', but containing lists of strings which can be moved from one into another.
2011-03-12 16:06:37 +00:00
90d42e114c py/rna: BPy_reports_to_error() now takes the exception type as an argument and returns -1 as an error value 2011-03-12 15:18:08 +00:00
c678bd2d7d py/rna, ability to have python static methods in collections. 2011-03-12 14:32:30 +00:00
d7257a983f bugfix [#26454] WITH_PYTHON_SAFETY crash. 2011-03-11 02:43:30 +00:00
e5ee4faad3 update for blender as a py module & python 3.2 2011-03-09 04:58:44 +00:00
65273cf82f - correct python3.1 warning message.
- for new shadow only enum, use humanly readable RNA enum values.
- update cmake unix example for custom python.
2011-03-08 22:11:15 +00:00
471c0c1afb py-api utf8/filepaths:
in function PyC_UnicodeAsByte(), replace code copied from python with PyUnicode_EncodeFSDefault(), new in py3.2.
2011-03-08 01:28:10 +00:00
e713d76f0e patch [#26404] UnicodeDecodeError
from user: perfection cat (sindra1961)
2011-03-08 01:23:42 +00:00
cfd9d6d190 Drop support for python 3.1.
for building py3.2 on *nix see:
  http://wiki.blender.org/index.php?title=Dev:2.5/Doc/Building_Blender/Linux/Troubleshooting#Python

also fixed possible buffer overrun with getting the fake filepath for a blender textblock.
2011-03-07 11:53:40 +00:00
91f4a4d7e1 fix [#26323] Crash when adding to a vertex group with a raw in 2011-03-05 05:02:37 +00:00
Nathan Letwory
5b6223fdeb Py_hash_t is new typedef in Python 3.2, typedeffing Py_ssize_t. Changing to that to keep "slow adaptors" happy ;) 2011-03-04 11:08:22 +00:00
Nathan Letwory
292f633698 long hash caused stack corruption in _PySet_NextEntry. This wanted a Py_hash_t, so made hash into such. 2011-03-04 10:37:49 +00:00
e197cc95e6 fix crash from own recent changes [#26271] Crash when accessing bpy.data.node_groups 2011-03-03 13:55:15 +00:00
e8c322ee85 Py/RNA API: WITH_PYTHON_SAFETY
compile time option which enables extra safety checks.
since this is noticeably slower I rather not enable by default yet.
2011-03-03 12:00:35 +00:00
b6b77b8426 Py/RNA api:
fix for crash when iterating over a collection which allocates the collection and frees on when finished.

The ability for BPy_StructRNA to hold a reference to other PyObject's was added to support this.
2011-03-03 09:16:06 +00:00
57436f3013 fix for own error made r35267. 2011-03-03 08:01:11 +00:00
3a2ce2be83 Py/RNA api - real collection iterator
Previously the api just converted the collection to a list and got the iterator from the list to return.

This has the advantage that it uses minimal memory on large collections where before it would make an array.

Though the main reason for this change is to support a bugfix for collections which free memory when they are done, this currently crashes the python api since once the list is built, the data is freed which is used by the list items in some cases (dynamic enums for eg).
2011-03-03 07:41:09 +00:00
b535c738d9 further reading, need to untrack tracked PyObjects before clearing their trackable vars. 2011-03-03 06:14:55 +00:00
c42f3b4e59 support for mathutils GC wasn't complete since PyObject_GC_Track is supposed to be called once the fields are filled in. 2011-03-03 06:01:31 +00:00
5f5fb5061b formatting edits. (no functional changes) 2011-03-03 05:42:16 +00:00
9c45fed287 Change RNA weakref code to use a ghash rather then a PyList, removing items from the list was far too slow. 2011-03-02 18:59:43 +00:00
415e8df10e simplify rna internal weakref use. 2011-03-02 16:56:13 +00:00
0abffe22c2 align weakref list for rna (properties were using wrong pointer) 2011-03-02 16:22:04 +00:00
7159bc0b1c minor fixes to weakref validation before making bigger changes 2011-03-02 06:56:21 +00:00
54b654c18f fixed compile problem intruduced in r35295
one import was missing, another one used twice.
2011-03-02 06:47:08 +00:00
58eb5ffc28 SVN maintenance. 2011-03-02 05:06:43 +00:00
e2304a4dbb move anim functions out of bpy_rna.c, its getting too big. 2011-03-02 04:51:43 +00:00
623822626a Py/RNA Stability: don't allow python to reference freed ID's and crash.
Second method for not having python crash blender on invalid access (ifdef'd out ATM, so no functional change).

This uses a weakref list per ID, and invalidates all members of that list when the ID is freed.
the list is not stores in the ID pointer but using a hash table since storing python in DNA data is not acceptable.

This is more correct then the previous method but shows down execution of scripts significantly since its always adding and removing from lists when data is created and freed.
2011-03-01 14:53:26 +00:00
c9ee017fb5 Py/RNA API test code to prevent crashing blender when python references freed ID's.
This uses pythons GC so its no overhead during runtime but makes removing ID's slower.

Commented definition 'USE_PYRNA_INVALIDATE_GC' for now, so no functional change.
2011-03-01 09:02:54 +00:00
7b636c717d bpy/rna support for invalidating objects.
access will raise an error.
2011-02-28 22:56:29 +00:00
55268331f6 missed these last commit. 2011-02-28 21:06:09 +00:00
7348a50d79 change return values from mathutils callbacks to match pythons (-1 is error), so error macro's can be used in both. 2011-02-28 18:42:41 +00:00
Nathan Letwory
5a760e22fc doxygen: blender/python tagged. 2011-02-27 20:10:08 +00:00
2e5eb41522 pedantic warning cleanup, also remove texspace_edit() since its been added using a different method. 2011-02-27 08:31:10 +00:00