pyobjc-framework-SyncServices 12.2.2__tar.gz → 13.0__tar.gz
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.
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/Lib/SyncServices/_metadata.py +114 -60
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/Lib/pyobjc_framework_SyncServices.egg-info/PKG-INFO +6 -6
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/Lib/pyobjc_framework_SyncServices.egg-info/SOURCES.txt +2 -2
- pyobjc_framework_syncservices-13.0/Lib/pyobjc_framework_SyncServices.egg-info/pyobjc-build-info.txt +3 -0
- pyobjc_framework_syncservices-13.0/Lib/pyobjc_framework_SyncServices.egg-info/requires.txt +3 -0
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/Modules/_SyncServices.m +9 -2
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/Modules/_SyncServices_protocols.m +8 -5
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/Modules/pyobjc-api.h +18 -4
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/Modules/pyobjc-compat.h +0 -18
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/PKG-INFO +6 -6
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/PyObjCTest/test_isyncchange.py +4 -6
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/PyObjCTest/test_isyncclient.py +3 -5
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/PyObjCTest/test_isyncconflictpropertytype.py +5 -6
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/PyObjCTest/test_isynccoredata.py +4 -5
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/PyObjCTest/test_isyncfilter.py +2 -2
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/PyObjCTest/test_isyncmanager.py +6 -8
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/PyObjCTest/test_isyncrecordsnapshot.py +2 -3
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/PyObjCTest/test_isyncsession.py +17 -19
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/PyObjCTest/test_isyncsessiondriver.py +8 -9
- pyobjc_framework_syncservices-13.0/PyObjCTest/test_syncservices.py +18 -0
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/PyObjCTest/test_syncserviceserrors.py +7 -7
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/metadata/SyncServices.fwinfo +120 -12
- pyobjc_framework_syncservices-13.0/metadata/metadata.ini +5 -0
- pyobjc_framework_syncservices-12.2.2/metadata/raw/arm64-26.5.fwinfo → pyobjc_framework_syncservices-13.0/metadata/raw/arm64-27.fwinfo +2 -192
- pyobjc_framework_syncservices-12.2.2/metadata/raw/x86_64-26.5.fwinfo → pyobjc_framework_syncservices-13.0/metadata/raw/x86_64-27.fwinfo +2 -192
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/pyobjc_setup.py +7 -7
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/setup.py +1 -1
- pyobjc_framework_syncservices-12.2.2/Lib/pyobjc_framework_SyncServices.egg-info/pyobjc-build-info.txt +0 -3
- pyobjc_framework_syncservices-12.2.2/Lib/pyobjc_framework_SyncServices.egg-info/requires.txt +0 -3
- pyobjc_framework_syncservices-12.2.2/PyObjCTest/test_syncservices.py +0 -27
- pyobjc_framework_syncservices-12.2.2/metadata/metadata.ini +0 -3
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/LICENSE.txt +0 -0
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/Lib/SyncServices/__init__.py +0 -0
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/Lib/pyobjc_framework_SyncServices.egg-info/dependency_links.txt +0 -0
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/Lib/pyobjc_framework_SyncServices.egg-info/not-zip-safe +0 -0
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/Lib/pyobjc_framework_SyncServices.egg-info/top_level.txt +0 -0
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/MANIFEST.in +0 -0
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/PyObjCTest/__init__.py +0 -0
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/README.txt +0 -0
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/pyproject.toml +0 -0
- {pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/setup.cfg +0 -0
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# This file is generated by objective.metadata
|
|
2
2
|
#
|
|
3
|
-
# Last update: Sun May 24 11:59:41 2026
|
|
4
|
-
#
|
|
5
3
|
# flake8: noqa
|
|
6
4
|
|
|
7
5
|
import objc, sys
|
|
@@ -43,7 +41,7 @@ misc.update(
|
|
|
43
41
|
),
|
|
44
42
|
}
|
|
45
43
|
)
|
|
46
|
-
misc.update({})
|
|
44
|
+
misc.update({"ISyncChangeType": NewType("ISyncChangeType", int)})
|
|
47
45
|
misc.update({})
|
|
48
46
|
r = objc.registerMetaDataForSelector
|
|
49
47
|
objc._updatingMetadata(True)
|
|
@@ -85,7 +83,16 @@ try:
|
|
|
85
83
|
r(
|
|
86
84
|
b"ISyncRecordSnapshot",
|
|
87
85
|
b"recordIdentifierForReference:isModified:",
|
|
88
|
-
{
|
|
86
|
+
{
|
|
87
|
+
"arguments": {
|
|
88
|
+
3: {
|
|
89
|
+
"null_accepted": True,
|
|
90
|
+
"name": "pModified",
|
|
91
|
+
"type": "^Z",
|
|
92
|
+
"type_modifier": b"o",
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
},
|
|
89
96
|
)
|
|
90
97
|
r(
|
|
91
98
|
b"ISyncSession",
|
|
@@ -130,7 +137,12 @@ try:
|
|
|
130
137
|
r(
|
|
131
138
|
b"ISyncSessionDriver",
|
|
132
139
|
b"startAsynchronousSync:",
|
|
133
|
-
{
|
|
140
|
+
{
|
|
141
|
+
"retval": {"type": "Z"},
|
|
142
|
+
"arguments": {
|
|
143
|
+
2: {"null_accepted": True, "name": "outError", "type_modifier": b"o"}
|
|
144
|
+
},
|
|
145
|
+
},
|
|
134
146
|
)
|
|
135
147
|
r(b"ISyncSessionDriver", b"sync", {"retval": {"type": "Z"}})
|
|
136
148
|
r(
|
|
@@ -148,33 +160,6 @@ try:
|
|
|
148
160
|
},
|
|
149
161
|
},
|
|
150
162
|
)
|
|
151
|
-
r(
|
|
152
|
-
b"NSObject",
|
|
153
|
-
b"attributedStringForIdentityPropertiesWithNames:inRecord:comparisonRecords:firstLineAttributes:secondLineAttributes:",
|
|
154
|
-
{
|
|
155
|
-
"retval": {"type": b"@"},
|
|
156
|
-
"arguments": {
|
|
157
|
-
2: {"type": b"@"},
|
|
158
|
-
3: {"type": b"@"},
|
|
159
|
-
4: {"type": b"@"},
|
|
160
|
-
5: {"type": b"@"},
|
|
161
|
-
6: {"type": b"@"},
|
|
162
|
-
},
|
|
163
|
-
},
|
|
164
|
-
)
|
|
165
|
-
r(
|
|
166
|
-
b"NSObject",
|
|
167
|
-
b"attributedStringForPropertiesWithNames:inRecord:comparisonRecords:defaultAttributes:",
|
|
168
|
-
{
|
|
169
|
-
"retval": {"type": b"@"},
|
|
170
|
-
"arguments": {
|
|
171
|
-
2: {"type": b"@"},
|
|
172
|
-
3: {"type": b"@"},
|
|
173
|
-
4: {"type": b"@"},
|
|
174
|
-
5: {"type": b"@"},
|
|
175
|
-
},
|
|
176
|
-
},
|
|
177
|
-
)
|
|
178
163
|
r(
|
|
179
164
|
b"NSObject",
|
|
180
165
|
b"changedRecordsForEntityName:moreComing:error:",
|
|
@@ -408,7 +393,15 @@ try:
|
|
|
408
393
|
b"sessionDriver:didNegotiateAndReturnError:",
|
|
409
394
|
{
|
|
410
395
|
"retval": {"type": "Z"},
|
|
411
|
-
"arguments": {
|
|
396
|
+
"arguments": {
|
|
397
|
+
2: {"type": b"@"},
|
|
398
|
+
3: {
|
|
399
|
+
"name": "outError",
|
|
400
|
+
"type_modifier": b"o",
|
|
401
|
+
"null_accepted": True,
|
|
402
|
+
"type": "^@",
|
|
403
|
+
},
|
|
404
|
+
},
|
|
412
405
|
},
|
|
413
406
|
)
|
|
414
407
|
r(
|
|
@@ -416,7 +409,15 @@ try:
|
|
|
416
409
|
b"sessionDriver:didPullAndReturnError:",
|
|
417
410
|
{
|
|
418
411
|
"retval": {"type": "Z"},
|
|
419
|
-
"arguments": {
|
|
412
|
+
"arguments": {
|
|
413
|
+
2: {"type": b"@"},
|
|
414
|
+
3: {
|
|
415
|
+
"name": "outError",
|
|
416
|
+
"type_modifier": b"o",
|
|
417
|
+
"null_accepted": True,
|
|
418
|
+
"type": "^@",
|
|
419
|
+
},
|
|
420
|
+
},
|
|
420
421
|
},
|
|
421
422
|
)
|
|
422
423
|
r(
|
|
@@ -424,7 +425,15 @@ try:
|
|
|
424
425
|
b"sessionDriver:didPushAndReturnError:",
|
|
425
426
|
{
|
|
426
427
|
"retval": {"type": "Z"},
|
|
427
|
-
"arguments": {
|
|
428
|
+
"arguments": {
|
|
429
|
+
2: {"type": b"@"},
|
|
430
|
+
3: {
|
|
431
|
+
"name": "outError",
|
|
432
|
+
"type_modifier": b"o",
|
|
433
|
+
"null_accepted": True,
|
|
434
|
+
"type": "^@",
|
|
435
|
+
},
|
|
436
|
+
},
|
|
428
437
|
},
|
|
429
438
|
)
|
|
430
439
|
r(
|
|
@@ -432,7 +441,15 @@ try:
|
|
|
432
441
|
b"sessionDriver:didReceiveSyncAlertAndReturnError:",
|
|
433
442
|
{
|
|
434
443
|
"retval": {"type": "Z"},
|
|
435
|
-
"arguments": {
|
|
444
|
+
"arguments": {
|
|
445
|
+
2: {"type": b"@"},
|
|
446
|
+
3: {
|
|
447
|
+
"name": "outError",
|
|
448
|
+
"type_modifier": b"o",
|
|
449
|
+
"null_accepted": True,
|
|
450
|
+
"type": "^@",
|
|
451
|
+
},
|
|
452
|
+
},
|
|
436
453
|
},
|
|
437
454
|
)
|
|
438
455
|
r(
|
|
@@ -440,7 +457,15 @@ try:
|
|
|
440
457
|
b"sessionDriver:didRegisterClientAndReturnError:",
|
|
441
458
|
{
|
|
442
459
|
"retval": {"type": "Z"},
|
|
443
|
-
"arguments": {
|
|
460
|
+
"arguments": {
|
|
461
|
+
2: {"type": b"@"},
|
|
462
|
+
3: {
|
|
463
|
+
"name": "outError",
|
|
464
|
+
"type_modifier": b"o",
|
|
465
|
+
"null_accepted": True,
|
|
466
|
+
"type": "^@",
|
|
467
|
+
},
|
|
468
|
+
},
|
|
444
469
|
},
|
|
445
470
|
)
|
|
446
471
|
r(
|
|
@@ -448,7 +473,15 @@ try:
|
|
|
448
473
|
b"sessionDriver:willFinishSessionAndReturnError:",
|
|
449
474
|
{
|
|
450
475
|
"retval": {"type": "Z"},
|
|
451
|
-
"arguments": {
|
|
476
|
+
"arguments": {
|
|
477
|
+
2: {"type": b"@"},
|
|
478
|
+
3: {
|
|
479
|
+
"name": "outError",
|
|
480
|
+
"type_modifier": b"o",
|
|
481
|
+
"null_accepted": True,
|
|
482
|
+
"type": "^@",
|
|
483
|
+
},
|
|
484
|
+
},
|
|
452
485
|
},
|
|
453
486
|
)
|
|
454
487
|
r(
|
|
@@ -456,7 +489,15 @@ try:
|
|
|
456
489
|
b"sessionDriver:willNegotiateAndReturnError:",
|
|
457
490
|
{
|
|
458
491
|
"retval": {"type": "Z"},
|
|
459
|
-
"arguments": {
|
|
492
|
+
"arguments": {
|
|
493
|
+
2: {"type": b"@"},
|
|
494
|
+
3: {
|
|
495
|
+
"name": "outError",
|
|
496
|
+
"type_modifier": b"o",
|
|
497
|
+
"null_accepted": True,
|
|
498
|
+
"type": "^@",
|
|
499
|
+
},
|
|
500
|
+
},
|
|
460
501
|
},
|
|
461
502
|
)
|
|
462
503
|
r(
|
|
@@ -464,7 +505,15 @@ try:
|
|
|
464
505
|
b"sessionDriver:willPullAndReturnError:",
|
|
465
506
|
{
|
|
466
507
|
"retval": {"type": "Z"},
|
|
467
|
-
"arguments": {
|
|
508
|
+
"arguments": {
|
|
509
|
+
2: {"type": b"@"},
|
|
510
|
+
3: {
|
|
511
|
+
"name": "outError",
|
|
512
|
+
"type_modifier": b"o",
|
|
513
|
+
"null_accepted": True,
|
|
514
|
+
"type": "^@",
|
|
515
|
+
},
|
|
516
|
+
},
|
|
468
517
|
},
|
|
469
518
|
)
|
|
470
519
|
r(
|
|
@@ -472,7 +521,15 @@ try:
|
|
|
472
521
|
b"sessionDriver:willPushAndReturnError:",
|
|
473
522
|
{
|
|
474
523
|
"retval": {"type": "Z"},
|
|
475
|
-
"arguments": {
|
|
524
|
+
"arguments": {
|
|
525
|
+
2: {"type": b"@"},
|
|
526
|
+
3: {
|
|
527
|
+
"name": "outError",
|
|
528
|
+
"type_modifier": b"o",
|
|
529
|
+
"null_accepted": True,
|
|
530
|
+
"type": "^@",
|
|
531
|
+
},
|
|
532
|
+
},
|
|
476
533
|
},
|
|
477
534
|
)
|
|
478
535
|
r(
|
|
@@ -514,7 +571,15 @@ try:
|
|
|
514
571
|
b"syncWithClient:inBackground:handler:error:",
|
|
515
572
|
{
|
|
516
573
|
"retval": {"type": "Z"},
|
|
517
|
-
"arguments": {
|
|
574
|
+
"arguments": {
|
|
575
|
+
3: {"type": "Z"},
|
|
576
|
+
5: {
|
|
577
|
+
"name": "rError",
|
|
578
|
+
"type_modifier": b"o",
|
|
579
|
+
"null_accepted": True,
|
|
580
|
+
"type": "^@",
|
|
581
|
+
},
|
|
582
|
+
},
|
|
518
583
|
},
|
|
519
584
|
)
|
|
520
585
|
finally:
|
|
@@ -591,25 +656,14 @@ protocols = {
|
|
|
591
656
|
None, b"sessionDriverDidCancelSession:", b"v@:@", isRequired=False
|
|
592
657
|
),
|
|
593
658
|
],
|
|
594
|
-
)
|
|
595
|
-
"SyncUIHelperInformalProtocol": objc.informal_protocol(
|
|
596
|
-
"SyncUIHelperInformalProtocol",
|
|
597
|
-
[
|
|
598
|
-
objc.selector(
|
|
599
|
-
None,
|
|
600
|
-
b"attributedStringForIdentityPropertiesWithNames:inRecord:comparisonRecords:firstLineAttributes:secondLineAttributes:",
|
|
601
|
-
b"@@:@@@@@",
|
|
602
|
-
isRequired=False,
|
|
603
|
-
),
|
|
604
|
-
objc.selector(
|
|
605
|
-
None,
|
|
606
|
-
b"attributedStringForPropertiesWithNames:inRecord:comparisonRecords:defaultAttributes:",
|
|
607
|
-
b"@@:@@@@",
|
|
608
|
-
isRequired=False,
|
|
609
|
-
),
|
|
610
|
-
],
|
|
611
|
-
),
|
|
659
|
+
)
|
|
612
660
|
}
|
|
613
661
|
expressions = {}
|
|
662
|
+
formal_protocols = {
|
|
663
|
+
"ISyncConflictPropertyType": "ISyncConflictPropertyType",
|
|
664
|
+
"ISyncFiltering": "ISyncFiltering",
|
|
665
|
+
"ISyncSessionDriverDataSource": "ISyncSessionDriverDataSource",
|
|
666
|
+
"NSPersistentStoreCoordinatorSyncing": "NSPersistentStoreCoordinatorSyncing",
|
|
667
|
+
}
|
|
614
668
|
|
|
615
669
|
# END OF FILE
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyobjc-framework-SyncServices
|
|
3
|
-
Version:
|
|
3
|
+
Version: 13.0
|
|
4
4
|
Summary: Wrappers for the framework SyncServices on macOS
|
|
5
5
|
Home-page: https://github.com/ronaldoussoren/pyobjc
|
|
6
6
|
Author: Ronald Oussoren
|
|
@@ -17,23 +17,23 @@ Classifier: Operating System :: MacOS :: MacOS X
|
|
|
17
17
|
Classifier: Programming Language :: Python
|
|
18
18
|
Classifier: Programming Language :: Python :: 3
|
|
19
19
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.11
|
|
22
21
|
Classifier: Programming Language :: Python :: 3.12
|
|
23
22
|
Classifier: Programming Language :: Python :: 3.13
|
|
24
23
|
Classifier: Programming Language :: Python :: 3.14
|
|
25
24
|
Classifier: Programming Language :: Python :: 3.15
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.16
|
|
26
26
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
27
27
|
Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable
|
|
28
28
|
Classifier: Programming Language :: Objective C
|
|
29
29
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
30
30
|
Classifier: Topic :: Software Development :: User Interfaces
|
|
31
|
-
Requires-Python: >=3.
|
|
31
|
+
Requires-Python: >=3.11
|
|
32
32
|
Description-Content-Type: text/x-rst; charset=UTF-8
|
|
33
33
|
License-File: LICENSE.txt
|
|
34
|
-
Requires-Dist: pyobjc-core>=
|
|
35
|
-
Requires-Dist: pyobjc-framework-Cocoa>=
|
|
36
|
-
Requires-Dist: pyobjc-framework-CoreData>=
|
|
34
|
+
Requires-Dist: pyobjc-core>=13.0
|
|
35
|
+
Requires-Dist: pyobjc-framework-Cocoa>=13.0
|
|
36
|
+
Requires-Dist: pyobjc-framework-CoreData>=13.0
|
|
37
37
|
Dynamic: author
|
|
38
38
|
Dynamic: author-email
|
|
39
39
|
Dynamic: classifier
|
{pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/Modules/_SyncServices.m
RENAMED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
#include "Python.h"
|
|
3
3
|
#include "pyobjc-api.h"
|
|
4
4
|
|
|
5
|
+
#ifdef USE_STATIC_ANALYZER
|
|
6
|
+
#include "../../pyobjc-core/Modules/objc/python-api-used.h"
|
|
7
|
+
#endif
|
|
8
|
+
|
|
5
9
|
#import <SyncServices/SyncServices.h>
|
|
6
10
|
|
|
7
11
|
/* We include the source code here instead of
|
|
@@ -9,6 +13,8 @@
|
|
|
9
13
|
*/
|
|
10
14
|
#include "_SyncServices_protocols.m"
|
|
11
15
|
|
|
16
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
17
|
+
|
|
12
18
|
static PyMethodDef mod_methods[] = {
|
|
13
19
|
{0, 0, 0, 0} /* sentinel */
|
|
14
20
|
};
|
|
@@ -54,10 +60,11 @@ static struct PyModuleDef mod_module = {
|
|
|
54
60
|
.m_free = NULL,
|
|
55
61
|
};
|
|
56
62
|
|
|
57
|
-
PyObject* PyInit__SyncServices(void);
|
|
63
|
+
PyObject* _Nullable PyInit__SyncServices(void);
|
|
58
64
|
|
|
59
|
-
PyObject* __attribute__((__visibility__("default")))
|
|
65
|
+
PyObject* _Nullable __attribute__((__visibility__("default")))
|
|
60
66
|
PyInit__SyncServices(void)
|
|
61
67
|
{
|
|
62
68
|
return PyModuleDef_Init(&mod_module);
|
|
63
69
|
}
|
|
70
|
+
NS_ASSUME_NONNULL_END
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* Last update: Wed Jan 16 13:12:13 2013
|
|
5
|
-
*/
|
|
1
|
+
// LCOV_EXCL_START
|
|
2
|
+
// This function is only present to ensure protocols are
|
|
3
|
+
// available at runtime.
|
|
6
4
|
|
|
7
5
|
#import <SyncServices/ISyncConflictPropertyType.h>
|
|
8
6
|
|
|
7
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
8
|
+
|
|
9
9
|
static void __attribute__((__used__))
|
|
10
10
|
use_protocols(void)
|
|
11
11
|
{
|
|
@@ -19,3 +19,6 @@ use_protocols(void)
|
|
|
19
19
|
p = PyObjC_IdToPython(@protocol(ISyncConflictPropertyType));
|
|
20
20
|
Py_XDECREF(p);
|
|
21
21
|
}
|
|
22
|
+
|
|
23
|
+
NS_ASSUME_NONNULL_END
|
|
24
|
+
// LCOV_EXCL_STOP
|
{pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/Modules/pyobjc-api.h
RENAMED
|
@@ -60,6 +60,11 @@ typedef int(RegisterMethodMappingFunctionType)(
|
|
|
60
60
|
PyObject* _Nonnull const* _Nonnull, size_t),
|
|
61
61
|
IMP _Nullable (*_Nonnull)(PyObject* _Nonnull, PyObject* _Nonnull));
|
|
62
62
|
|
|
63
|
+
#ifndef PyObjC_FUNCTION_CALL_H
|
|
64
|
+
typedef PyObject* _Nullable (*PyObjC_FunctionCallFunc)(
|
|
65
|
+
PyObject* meth, PyObject* _Nonnull const* _Nonnull args, size_t nargs);
|
|
66
|
+
#endif
|
|
67
|
+
|
|
63
68
|
struct pyobjc_api {
|
|
64
69
|
int api_version; /* API version */
|
|
65
70
|
size_t struct_len; /* Length of this struct */
|
|
@@ -117,6 +122,9 @@ struct pyobjc_api {
|
|
|
117
122
|
|
|
118
123
|
PyObject* _Nullable (*_Nonnull createopaquepointertype)(const char*, const char*,
|
|
119
124
|
const char*);
|
|
125
|
+
int (*_Nonnull register_functioncaller)(void*, PyObjC_FunctionCallFunc);
|
|
126
|
+
PyObject* _Nullable (*_Nonnull create_registered_struct)(
|
|
127
|
+
const char*, Py_ssize_t, const char* _Nonnull* _Nullable, Py_ssize_t*);
|
|
120
128
|
};
|
|
121
129
|
|
|
122
130
|
#ifndef PYOBJC_BUILD
|
|
@@ -159,6 +167,8 @@ static struct pyobjc_api* PyObjC_API;
|
|
|
159
167
|
#define PyObjC_CheckArgCount (PyObjC_API->checkargcount)
|
|
160
168
|
#define PyObjC_CheckNoKwnames (PyObjC_API->checknokwnames)
|
|
161
169
|
#define PyObjCCreateOpaquePointerType (PyObjC_API->createopaquepointertype)
|
|
170
|
+
#define PyObjCRegister_FunctionCaller (PyObjC_API->register_functioncaller)
|
|
171
|
+
#define PyObjC_CreateRegisteredStruct (PyObjC_API->create_registered_struct)
|
|
162
172
|
|
|
163
173
|
typedef void (*PyObjC_Function_Pointer)(void);
|
|
164
174
|
typedef struct PyObjC_function_map {
|
|
@@ -178,21 +188,25 @@ static inline int
|
|
|
178
188
|
PyObjC_ImportAPI(PyObject* calling_module)
|
|
179
189
|
{
|
|
180
190
|
PyObjC_API = (struct pyobjc_api*)PyCapsule_Import("objc." PYOBJC_API_NAME, 0);
|
|
181
|
-
if (PyObjC_API == NULL) {
|
|
182
|
-
return -1;
|
|
191
|
+
if (PyObjC_API == NULL) { // LCOV_BR_EXCL_LINE
|
|
192
|
+
return -1; // LCOV_EXCL_LINE
|
|
183
193
|
}
|
|
184
|
-
if (PyObjC_API->api_version != PYOBJC_API_VERSION) {
|
|
194
|
+
if (PyObjC_API->api_version != PYOBJC_API_VERSION) { // LCOV_BR_EXCL_LINE
|
|
195
|
+
// LCOV_EXCL_START
|
|
185
196
|
PyErr_Format(PyExc_RuntimeError,
|
|
186
197
|
"Wrong version of PyObjC C API (got %d, expected %d)",
|
|
187
198
|
(int)PyObjC_API->api_version, (int)PYOBJC_API_VERSION);
|
|
188
199
|
return -1;
|
|
200
|
+
// LCOV_EXCL_STOP
|
|
189
201
|
}
|
|
190
202
|
|
|
191
|
-
if (PyObjC_API->struct_len < PyObjC_EXPECTED_STRUCT_SIZE) {
|
|
203
|
+
if (PyObjC_API->struct_len < PyObjC_EXPECTED_STRUCT_SIZE) { // LCOV_EXCL_LINE
|
|
204
|
+
// LCOV_EXCL_START
|
|
192
205
|
PyErr_Format(PyExc_RuntimeError,
|
|
193
206
|
"Wrong struct-size of PyObjC C API (got %d, expected %d)",
|
|
194
207
|
(int)PyObjC_API->struct_len, (int)sizeof(struct pyobjc_api));
|
|
195
208
|
return -1;
|
|
209
|
+
// LCOV_EXCL_STOP
|
|
196
210
|
}
|
|
197
211
|
|
|
198
212
|
/* Current pyobjc implementation doesn't allow deregistering
|
{pyobjc_framework_syncservices-12.2.2 → pyobjc_framework_syncservices-13.0}/Modules/pyobjc-compat.h
RENAMED
|
@@ -167,24 +167,6 @@ _PyObjCTuple_GetItem(PyObject* tuple, Py_ssize_t idx)
|
|
|
167
167
|
PyGILState_Release(_GILState); \
|
|
168
168
|
} while (0)
|
|
169
169
|
|
|
170
|
-
#if PY_VERSION_HEX < 0x030a0000
|
|
171
|
-
|
|
172
|
-
static inline PyObject*
|
|
173
|
-
Py_NewRef(PyObject* o)
|
|
174
|
-
{
|
|
175
|
-
Py_INCREF(o);
|
|
176
|
-
return o;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
static inline PyObject*
|
|
180
|
-
Py_XNewRef(PyObject* o)
|
|
181
|
-
{
|
|
182
|
-
Py_XINCREF(o);
|
|
183
|
-
return o;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
#endif /* PY_VERSION_HEX < 0x030a0000 */
|
|
187
|
-
|
|
188
170
|
#if PY_VERSION_HEX < 0x030d0000
|
|
189
171
|
#define Py_BEGIN_CRITICAL_SECTION(value) \
|
|
190
172
|
{ \
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyobjc-framework-SyncServices
|
|
3
|
-
Version:
|
|
3
|
+
Version: 13.0
|
|
4
4
|
Summary: Wrappers for the framework SyncServices on macOS
|
|
5
5
|
Home-page: https://github.com/ronaldoussoren/pyobjc
|
|
6
6
|
Author: Ronald Oussoren
|
|
@@ -17,23 +17,23 @@ Classifier: Operating System :: MacOS :: MacOS X
|
|
|
17
17
|
Classifier: Programming Language :: Python
|
|
18
18
|
Classifier: Programming Language :: Python :: 3
|
|
19
19
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.11
|
|
22
21
|
Classifier: Programming Language :: Python :: 3.12
|
|
23
22
|
Classifier: Programming Language :: Python :: 3.13
|
|
24
23
|
Classifier: Programming Language :: Python :: 3.14
|
|
25
24
|
Classifier: Programming Language :: Python :: 3.15
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.16
|
|
26
26
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
27
27
|
Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable
|
|
28
28
|
Classifier: Programming Language :: Objective C
|
|
29
29
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
30
30
|
Classifier: Topic :: Software Development :: User Interfaces
|
|
31
|
-
Requires-Python: >=3.
|
|
31
|
+
Requires-Python: >=3.11
|
|
32
32
|
Description-Content-Type: text/x-rst; charset=UTF-8
|
|
33
33
|
License-File: LICENSE.txt
|
|
34
|
-
Requires-Dist: pyobjc-core>=
|
|
35
|
-
Requires-Dist: pyobjc-framework-Cocoa>=
|
|
36
|
-
Requires-Dist: pyobjc-framework-CoreData>=
|
|
34
|
+
Requires-Dist: pyobjc-core>=13.0
|
|
35
|
+
Requires-Dist: pyobjc-framework-Cocoa>=13.0
|
|
36
|
+
Requires-Dist: pyobjc-framework-CoreData>=13.0
|
|
37
37
|
Dynamic: author
|
|
38
38
|
Dynamic: author-email
|
|
39
39
|
Dynamic: classifier
|
|
@@ -1,21 +1,19 @@
|
|
|
1
|
-
from PyObjCTools.TestSupport import TestCase
|
|
1
|
+
from PyObjCTools.TestSupport import TestCase
|
|
2
2
|
import SyncServices
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
class TestISyncChange(TestCase):
|
|
6
|
-
def
|
|
6
|
+
def test_enums(self):
|
|
7
|
+
self.assertIsEnumType(SyncServices.ISyncChangeType)
|
|
7
8
|
self.assertEqual(SyncServices.ISyncChangeTypeNone, 0)
|
|
8
9
|
self.assertEqual(SyncServices.ISyncChangeTypeAdd, 1)
|
|
9
10
|
self.assertEqual(SyncServices.ISyncChangeTypeModify, 2)
|
|
10
11
|
self.assertEqual(SyncServices.ISyncChangeTypeDelete, 3)
|
|
11
12
|
|
|
13
|
+
def test_constants(self):
|
|
12
14
|
self.assertIsInstance(SyncServices.ISyncChangePropertyActionKey, str)
|
|
13
15
|
self.assertIsInstance(SyncServices.ISyncChangePropertySet, str)
|
|
14
16
|
self.assertIsInstance(SyncServices.ISyncChangePropertyClear, str)
|
|
15
17
|
self.assertIsInstance(SyncServices.ISyncChangePropertyNameKey, str)
|
|
16
18
|
self.assertIsInstance(SyncServices.ISyncChangePropertyValueKey, str)
|
|
17
|
-
|
|
18
|
-
@min_os_level("10.6")
|
|
19
|
-
def testConstants10_5(self):
|
|
20
|
-
# Document for 10.5, but not actually present there
|
|
21
19
|
self.assertIsInstance(SyncServices.ISyncChangePropertyValueIsDefaultKey, str)
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
from PyObjCTools.TestSupport import TestCase
|
|
1
|
+
from PyObjCTools.TestSupport import TestCase
|
|
2
2
|
import SyncServices
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
class TestISyncClient(TestCase):
|
|
6
|
-
def
|
|
6
|
+
def test_constants(self):
|
|
7
7
|
self.assertEqual(SyncServices.ISyncStatusRunning, 1)
|
|
8
8
|
self.assertEqual(SyncServices.ISyncStatusSuccess, 2)
|
|
9
9
|
self.assertEqual(SyncServices.ISyncStatusWarnings, 3)
|
|
@@ -17,7 +17,7 @@ class TestISyncClient(TestCase):
|
|
|
17
17
|
self.assertIsInstance(SyncServices.ISyncClientTypeServer, str)
|
|
18
18
|
self.assertIsInstance(SyncServices.ISyncClientTypePeer, str)
|
|
19
19
|
|
|
20
|
-
def
|
|
20
|
+
def test_methods(self):
|
|
21
21
|
self.assertResultIsBOOL(SyncServices.ISyncClient.canPushChangesForEntityName_)
|
|
22
22
|
self.assertResultIsBOOL(SyncServices.ISyncClient.canPullChangesForEntityName_)
|
|
23
23
|
self.assertResultIsBOOL(SyncServices.ISyncClient.isEnabledForEntityName_)
|
|
@@ -35,7 +35,5 @@ class TestISyncClient(TestCase):
|
|
|
35
35
|
SyncServices.ISyncClient.setShouldSynchronize_withClientsOfType_, 0
|
|
36
36
|
)
|
|
37
37
|
|
|
38
|
-
@min_os_level("10.6")
|
|
39
|
-
def testMethods10_6(self):
|
|
40
38
|
self.assertResultIsBOOL(SyncServices.ISyncClient.formatsRelationships)
|
|
41
39
|
self.assertArgIsBOOL(SyncServices.ISyncClient.setFormatsRelationships_, 0)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import SyncServices
|
|
2
|
-
from PyObjCTools.TestSupport import TestCase
|
|
2
|
+
from PyObjCTools.TestSupport import TestCase
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
class TestISyncConflictPropertyTypeHelper(SyncServices.NSObject):
|
|
@@ -14,11 +14,10 @@ class TestISyncConflictPropertyTypeHelper(SyncServices.NSObject):
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
class TestISyncConflictPropertyType(TestCase):
|
|
17
|
-
def
|
|
17
|
+
def test_protocols(self):
|
|
18
|
+
self.assertProtocolExists("ISyncConflictPropertyType", SyncServices)
|
|
19
|
+
|
|
20
|
+
def test_protocol_methods(self):
|
|
18
21
|
self.assertResultIsBOOL(TestISyncConflictPropertyTypeHelper.isRelationship)
|
|
19
22
|
self.assertResultIsBOOL(TestISyncConflictPropertyTypeHelper.isToMany)
|
|
20
23
|
self.assertResultIsBOOL(TestISyncConflictPropertyTypeHelper.isRequired)
|
|
21
|
-
|
|
22
|
-
@min_os_level("10.7")
|
|
23
|
-
def testProtocolObjects(self):
|
|
24
|
-
self.assertProtocolExists("ISyncConflictPropertyType")
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from PyObjCTools.TestSupport import TestCase
|
|
1
|
+
from PyObjCTools.TestSupport import TestCase
|
|
2
2
|
import SyncServices
|
|
3
3
|
|
|
4
4
|
|
|
@@ -13,8 +13,7 @@ class TestISyncCoreDataHelper(SyncServices.NSObject):
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
class TestISyncCoreData(TestCase):
|
|
16
|
-
|
|
17
|
-
def testMethods(self):
|
|
16
|
+
def test_methods(self):
|
|
18
17
|
self.assertResultIsBOOL(
|
|
19
18
|
SyncServices.NSPersistentStoreCoordinator.syncWithClient_inBackground_handler_error_ # noqa: B950
|
|
20
19
|
)
|
|
@@ -27,8 +26,8 @@ class TestISyncCoreData(TestCase):
|
|
|
27
26
|
3,
|
|
28
27
|
)
|
|
29
28
|
|
|
30
|
-
def
|
|
31
|
-
self.assertProtocolExists("NSPersistentStoreCoordinatorSyncing")
|
|
29
|
+
def test_protocols(self):
|
|
30
|
+
self.assertProtocolExists("NSPersistentStoreCoordinatorSyncing", SyncServices)
|
|
32
31
|
|
|
33
32
|
def test_protocol_methods(self):
|
|
34
33
|
self.assertResultIsBOOL(
|
|
@@ -11,8 +11,8 @@ class TestISyncFilterHelper(SyncServices.NSObject):
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
class TestISyncFilter(TestCase):
|
|
14
|
-
def
|
|
15
|
-
self.assertProtocolExists("ISyncFiltering")
|
|
14
|
+
def test_protocols(self):
|
|
15
|
+
self.assertProtocolExists("ISyncFiltering", SyncServices)
|
|
16
16
|
|
|
17
17
|
def test_protocol_methods(self):
|
|
18
18
|
self.assertResultIsBOOL(TestISyncFilterHelper.isEqual_)
|
|
@@ -1,18 +1,16 @@
|
|
|
1
|
-
from PyObjCTools.TestSupport import TestCase
|
|
1
|
+
from PyObjCTools.TestSupport import TestCase
|
|
2
2
|
import SyncServices
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
class TestISyncManager(TestCase):
|
|
6
|
-
def
|
|
7
|
-
self.assertResultIsBOOL(SyncServices.ISyncManager.isEnabled)
|
|
8
|
-
self.assertResultIsBOOL(SyncServices.ISyncManager.registerSchemaWithBundlePath_)
|
|
9
|
-
|
|
10
|
-
def testConstants(self):
|
|
6
|
+
def test_constants(self):
|
|
11
7
|
self.assertIsInstance(SyncServices.ISyncAvailabilityChangedNotification, str)
|
|
12
8
|
self.assertIsInstance(SyncServices.ISyncServerUnavailableException, str)
|
|
13
9
|
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
def test_methods(self):
|
|
11
|
+
self.assertResultIsBOOL(SyncServices.ISyncManager.isEnabled)
|
|
12
|
+
self.assertResultIsBOOL(SyncServices.ISyncManager.registerSchemaWithBundlePath_)
|
|
13
|
+
|
|
16
14
|
self.assertArgIsBOOL(
|
|
17
15
|
SyncServices.ISyncManager.clientWithIdentifier_needsSyncing_, 1
|
|
18
16
|
)
|