reproto 0.0.9__tar.gz → 0.1.1__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.
- reproto-0.1.1/.git/COMMIT_EDITMSG +1 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/index +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/logs/HEAD +4 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/logs/refs/heads/iyue +4 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/logs/refs/remotes/gitlab/iyue +4 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/logs/refs/remotes/origin/iyue +4 -0
- reproto-0.1.1/.git/objects/0c/7b11b535a18f311aedadbe91e14fc9fe6b50d9 +0 -0
- reproto-0.1.1/.git/objects/1a/4435c23bdf5543e3270aa69361c9c68f205efb +0 -0
- reproto-0.1.1/.git/objects/2b/64656ce2df6259c822733b03f26eb828fe9269 +0 -0
- reproto-0.1.1/.git/objects/2d/a515dbb88d31400d5b84d41caf270e9309232d +0 -0
- reproto-0.1.1/.git/objects/38/907894973091f8e9b224a13fe596e1cb309cf5 +0 -0
- reproto-0.1.1/.git/objects/3c/c3ca375694d43e35cdc88d4a5d067e510df427 +0 -0
- reproto-0.1.1/.git/objects/3d/3cc6aab4eefed46c77dda27503bebcce88962c +0 -0
- reproto-0.1.1/.git/objects/4b/442fccf86631bf5196ee5b48ab8d58228ab59c +0 -0
- reproto-0.1.1/.git/objects/5e/9daac72a48ce60688ab2eeddcc3d9152329e20 +0 -0
- reproto-0.1.1/.git/objects/67/f27f77274917580e687fd00ca18da0660215c1 +0 -0
- reproto-0.1.1/.git/objects/6f/90fcf9eacdc794313471f54279011a787c8760 +0 -0
- reproto-0.1.1/.git/objects/7e/5935774ee7a85f2523427c9100f9c578ac172f +1 -0
- reproto-0.1.1/.git/objects/92/c6018b4fb8e3b6c2f3f3054a56f2bfaca27470 +0 -0
- reproto-0.1.1/.git/objects/a0/d630c3f6024b196d4ee933ab13a32905efdaaa +0 -0
- reproto-0.1.1/.git/objects/ae/046e08176523e8a98dc7294436319f724db13c +0 -0
- reproto-0.1.1/.git/objects/b0/7a43f0462bf25a8b1f4c0ca60c1b533dae1dde +0 -0
- reproto-0.1.1/.git/objects/c8/2a656fe6b5d479b327cdf5fe3bf60db987a2a2 +0 -0
- reproto-0.1.1/.git/objects/c8/cb3bb9552dcf6a368a1418996c4b925db2d8ab +0 -0
- reproto-0.1.1/.git/objects/e2/b7433fbfbfac5bc800a962be2f4adbed145b42 +0 -0
- reproto-0.1.1/.git/objects/e4/1e5aa2bc3074c2014d01ab1f603f69c327a83f +0 -0
- reproto-0.1.1/.git/objects/fa/fc981b0d80d8d0323c04365785f66996ed5211 +0 -0
- reproto-0.1.1/.git/refs/heads/iyue +1 -0
- reproto-0.1.1/.git/refs/remotes/gitlab/iyue +1 -0
- reproto-0.1.1/.git/refs/remotes/origin/iyue +1 -0
- {reproto-0.0.9 → reproto-0.1.1}/PKG-INFO +1 -1
- {reproto-0.0.9 → reproto-0.1.1}/core/info_decoder.py +1 -1
- {reproto-0.0.9 → reproto-0.1.1}/core/reconstructor.py +178 -9
- {reproto-0.0.9 → reproto-0.1.1}/generation/proto_generator.py +136 -58
- {reproto-0.0.9 → reproto-0.1.1}/parsing/java_parser.py +1 -1
- {reproto-0.0.9 → reproto-0.1.1}/pyproject.toml +1 -1
- reproto-0.0.9/.git/COMMIT_EDITMSG +0 -14
- reproto-0.0.9/.git/refs/heads/iyue +0 -1
- reproto-0.0.9/.git/refs/remotes/gitlab/iyue +0 -1
- reproto-0.0.9/.git/refs/remotes/origin/iyue +0 -1
- {reproto-0.0.9 → reproto-0.1.1}/.git/FETCH_HEAD +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/HEAD +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/config +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/description +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/hooks/applypatch-msg.sample +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/hooks/commit-msg.sample +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/hooks/fsmonitor-watchman.sample +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/hooks/post-update.sample +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/hooks/pre-applypatch.sample +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/hooks/pre-commit.sample +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/hooks/pre-merge-commit.sample +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/hooks/pre-push.sample +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/hooks/pre-rebase.sample +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/hooks/pre-receive.sample +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/hooks/prepare-commit-msg.sample +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/hooks/push-to-checkout.sample +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/hooks/sendemail-validate.sample +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/hooks/update.sample +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/info/exclude +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/logs/refs/remotes/origin/HEAD +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/09/a92517fe9eeb33d2fd7c979e01d163665f7abc +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/14/d323d58fb90c209a730c17e23fd82a6c735fc1 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/15/eb3f02479e633439ec83c143e703f8448043a1 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/18/89a4fb55eb3abdc528ce87f0cea039278c06fd +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/20/cf56ec106bcd66420dd000279f983571b918b6 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/21/55b64d52922c88527c102d62f23e5c2abbae79 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/23/bfbca38e177bcbb423dd782c35b19d127a5ab0 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/26/1f67f3b731b32f6d77de9dd7be2d61e2a14ace +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/29/4708b82b343e04e7a6685f5cd1287f3d17f7a9 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/2c/fcddd7eebeb4eee0562dc384a79366bc7b04bb +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/2e/2c1c42f5ac5d665cc672d3792078b756d9ab0e +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/33/181441ab38eded005db356da89b54c7d29f452 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/33/52dfa8f5d9eb46cc98ea7ccecf02e4d9df95f7 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/34/192f0df5f5b694c881d086019eda349608d222 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/35/8bace20b731ff1bbb256d2a0158dfc84720978 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/3c/6f0120229cc2cd8123efbeb7f186eb0a485f29 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/3e/d953d5ed2c66722045f5e39d068696a0853b4f +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/40/84f4567d983a977c49598b7d886e46b13ff50b +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/44/4af3a0d68ba81976f67c7b638c9b0db4640709 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/48/369b05749e384be9be58e5f943f3a0040d0f37 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/4b/43f5f577e1cdc35f8e06d178d8f5c892034061 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/4c/16984be6ef7b24d01604821e9728cb579acd69 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/4d/6d457bfabc4af842e5ddc2d56eb059d5dfdc9d +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/55/6723fdd4f525eed41c52fa80defca3f0c81c47 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/56/79064a3138031d3a92d60aa629b82009fd0d1d +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/58/0d8f872aa869e42ba608f64888b1349f8b3ff4 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/5a/11f9d70791e06a0570e01d3dcbbae39cde55db +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/5c/715dcb05e32db7a7a3b030f07524bdd8a56849 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/5d/e2e9d536c2c0b78e8f9b3b61daa531a55332dc +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/65/a4f0ada7519f8b1e6a7c7e287541b8effde9fd +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/66/7291e131d4769e7d028346a0cc7a0c05d500e5 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/67/f54a4a3ede6749acc7c718ad97a86634215b5e +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/70/ded03ee69f30850c938a8129be308cb30772d9 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/76/311aa8e59d780763e0d66787067cc5d9613a67 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/78/3e7e252c20e73e33615c703174766036546ff6 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/7c/00eec7ae9ef5f94fc337e5c8f9793a2a48810d +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/8c/809c42c7ae13007fd885ee7bcffae7acf2c520 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/8d/44142ae2d6dbb59d4ebed8587bccd051e5766b +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/8d/4a5767bef0c342f1660526f9671c0944922c40 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/94/ce01b61b90d1fb21d2d339fbeb22e821b6f413 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/95/295a15779ebefd563ec777c3d3cced7e8d0209 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/97/56fe0931216a7c40cbf250e1ab8a6dfd589f13 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/97/71dd4958faa94d3db229c129f6af35b508905a +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/9a/e313cdf64cd82416c1238eb493e6396f799f12 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/9e/9978522bc8ca79133d7c11ef8ca3fe3c7eed0a +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/9f/b57064e0c53ed80af8507acaab718a1e80184e +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/a3/cedc28e563a1845a7860161b39b0fe58d5f0d3 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/a5/b7e4e1b63bfb65288f6553687aaabcfb4d51b1 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/b3/28dc445ee33220db9359370fc0089a77174101 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/b3/d2b3037bede44e7e4d18dc99419f8c712c9c62 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/c3/93db4841dbbb8acf54e9af12b6705c9f5ecde9 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/c3/c8594874dd9ff9c21662fd06cac9b5baadbba0 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/c9/a6ca8f8efee4a5632e9a655ced29f1b708f35e +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/c9/cdef9ab627b874ffe6455a47583a75bf16496d +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/cd/2d6c229438c6b1c694b9392a85888d89ef49c1 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/d0/9c84ad2142a187bf26a1714b7041b62e404c8f +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/d9/6d7456245232b3e159dcf691f11e51224c557a +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/db/beedb30613f79ae3ff67df1428cf8ade223711 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/df/f8f64cee2b97df7d86f73207c5e690f98f0208 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/e8/1433b6ad92206cdadbee1f474b4f99383314cb +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/e8/2f42ea26b8bf4f0bc92c0648ac8f190f14226d +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/e9/a15996cb55ac72aeb6611d26e8d22246589943 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/eb/528f06c622d54e411e9e05b3a200b4ac624a90 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/ed/fb5bbf938de738d1f658f80e23c675bb8b3fae +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/ef/4844af55f7f64b8dd24b81b5a8322a8c80208e +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/f2/2bfffda9fb6a7f37bed04b7c40c9466ef09454 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/f5/18c69a6e1bf3052b79da01502b2837ea58f0f4 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/f7/25a430eb3364460ba854dbc8809edc21dc6c70 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/fc/e15b9dbffd9f37b1f2d46944ee2d0394df6565 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/fd/267d9de63212db235135fa6834f62572224fc6 +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/pack/pack-289f7bb06603881c49190e6036de6390223baf77.idx +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/pack/pack-289f7bb06603881c49190e6036de6390223baf77.pack +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/objects/pack/pack-289f7bb06603881c49190e6036de6390223baf77.rev +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/packed-refs +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.git/refs/remotes/origin/HEAD +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.gitignore +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/.python-version +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/ARCHITECTURE.md +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/README.md +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/core/__init__.py +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/core/bytecode_parser.py +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/generation/__init__.py +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/main.py +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/models/__init__.py +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/models/message_definition.py +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/parsing/__init__.py +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/parsing/enum_parser.py +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/requirements.txt +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/utils/__init__.py +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/utils/file_cache.py +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/utils/file_utils.py +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/utils/logger.py +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/utils/type_index.py +0 -0
- {reproto-0.0.9 → reproto-0.1.1}/utils/type_utils.py +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
feat(build): update version
|
Binary file
|
@@ -8,3 +8,7 @@ fce15b9dbffd9f37b1f2d46944ee2d0394df6565 70ded03ee69f30850c938a8129be308cb30772d
|
|
8
8
|
70ded03ee69f30850c938a8129be308cb30772d9 67f54a4a3ede6749acc7c718ad97a86634215b5e iyue <ys1231@126.com> 1751004413 +0800 commit: feat: 重构类型处理系统,统一Java到Protobuf类型映射
|
9
9
|
67f54a4a3ede6749acc7c718ad97a86634215b5e 9771dd4958faa94d3db229c129f6af35b508905a iyue <ys1231@126.com> 1751006389 +0800 commit: 🚀 性能优化:移除未使用的索引系统,提升执行效率
|
10
10
|
9771dd4958faa94d3db229c129f6af35b508905a 9fb57064e0c53ed80af8507acaab718a1e80184e iyue <ys1231@126.com> 1751006683 +0800 commit: 📚 更新文档:反映最新架构变化和性能优化
|
11
|
+
9fb57064e0c53ed80af8507acaab718a1e80184e e41e5aa2bc3074c2014d01ab1f603f69c327a83f iyue <ys1231@126.com> 1751010339 +0800 commit: feat: 直接使用Java源码中的实际枚举类名
|
12
|
+
e41e5aa2bc3074c2014d01ab1f603f69c327a83f b07a43f0462bf25a8b1f4c0ca60c1b533dae1dde iyue <ys1231@126.com> 1751010729 +0800 commit: fix: 改进日志级别和错误处理
|
13
|
+
b07a43f0462bf25a8b1f4c0ca60c1b533dae1dde 3d3cc6aab4eefed46c77dda27503bebcce88962c iyue <ys1231@126.com> 1751011389 +0800 commit: release: v2.1.0 - 重大性能优化和功能增强
|
14
|
+
3d3cc6aab4eefed46c77dda27503bebcce88962c 7e5935774ee7a85f2523427c9100f9c578ac172f iyue <ys1231@126.com> 1751011558 +0800 commit: feat(build): update version
|
@@ -8,3 +8,7 @@ fce15b9dbffd9f37b1f2d46944ee2d0394df6565 70ded03ee69f30850c938a8129be308cb30772d
|
|
8
8
|
70ded03ee69f30850c938a8129be308cb30772d9 67f54a4a3ede6749acc7c718ad97a86634215b5e iyue <ys1231@126.com> 1751004413 +0800 commit: feat: 重构类型处理系统,统一Java到Protobuf类型映射
|
9
9
|
67f54a4a3ede6749acc7c718ad97a86634215b5e 9771dd4958faa94d3db229c129f6af35b508905a iyue <ys1231@126.com> 1751006389 +0800 commit: 🚀 性能优化:移除未使用的索引系统,提升执行效率
|
10
10
|
9771dd4958faa94d3db229c129f6af35b508905a 9fb57064e0c53ed80af8507acaab718a1e80184e iyue <ys1231@126.com> 1751006683 +0800 commit: 📚 更新文档:反映最新架构变化和性能优化
|
11
|
+
9fb57064e0c53ed80af8507acaab718a1e80184e e41e5aa2bc3074c2014d01ab1f603f69c327a83f iyue <ys1231@126.com> 1751010339 +0800 commit: feat: 直接使用Java源码中的实际枚举类名
|
12
|
+
e41e5aa2bc3074c2014d01ab1f603f69c327a83f b07a43f0462bf25a8b1f4c0ca60c1b533dae1dde iyue <ys1231@126.com> 1751010729 +0800 commit: fix: 改进日志级别和错误处理
|
13
|
+
b07a43f0462bf25a8b1f4c0ca60c1b533dae1dde 3d3cc6aab4eefed46c77dda27503bebcce88962c iyue <ys1231@126.com> 1751011389 +0800 commit: release: v2.1.0 - 重大性能优化和功能增强
|
14
|
+
3d3cc6aab4eefed46c77dda27503bebcce88962c 7e5935774ee7a85f2523427c9100f9c578ac172f iyue <ys1231@126.com> 1751011558 +0800 commit: feat(build): update version
|
@@ -7,3 +7,7 @@ fce15b9dbffd9f37b1f2d46944ee2d0394df6565 70ded03ee69f30850c938a8129be308cb30772d
|
|
7
7
|
70ded03ee69f30850c938a8129be308cb30772d9 67f54a4a3ede6749acc7c718ad97a86634215b5e iyue <ys1231@126.com> 1751004471 +0800 update by push
|
8
8
|
67f54a4a3ede6749acc7c718ad97a86634215b5e 9771dd4958faa94d3db229c129f6af35b508905a iyue <ys1231@126.com> 1751006413 +0800 update by push
|
9
9
|
9771dd4958faa94d3db229c129f6af35b508905a 9fb57064e0c53ed80af8507acaab718a1e80184e iyue <ys1231@126.com> 1751006704 +0800 update by push
|
10
|
+
9fb57064e0c53ed80af8507acaab718a1e80184e e41e5aa2bc3074c2014d01ab1f603f69c327a83f iyue <ys1231@126.com> 1751010362 +0800 update by push
|
11
|
+
e41e5aa2bc3074c2014d01ab1f603f69c327a83f b07a43f0462bf25a8b1f4c0ca60c1b533dae1dde iyue <ys1231@126.com> 1751010753 +0800 update by push
|
12
|
+
b07a43f0462bf25a8b1f4c0ca60c1b533dae1dde 3d3cc6aab4eefed46c77dda27503bebcce88962c iyue <ys1231@126.com> 1751011478 +0800 update by push
|
13
|
+
3d3cc6aab4eefed46c77dda27503bebcce88962c 7e5935774ee7a85f2523427c9100f9c578ac172f iyue <ys1231@126.com> 1751011568 +0800 update by push
|
@@ -7,3 +7,7 @@ fce15b9dbffd9f37b1f2d46944ee2d0394df6565 70ded03ee69f30850c938a8129be308cb30772d
|
|
7
7
|
70ded03ee69f30850c938a8129be308cb30772d9 67f54a4a3ede6749acc7c718ad97a86634215b5e iyue <ys1231@126.com> 1751004455 +0800 update by push
|
8
8
|
67f54a4a3ede6749acc7c718ad97a86634215b5e 9771dd4958faa94d3db229c129f6af35b508905a iyue <ys1231@126.com> 1751006400 +0800 update by push
|
9
9
|
9771dd4958faa94d3db229c129f6af35b508905a 9fb57064e0c53ed80af8507acaab718a1e80184e iyue <ys1231@126.com> 1751006693 +0800 update by push
|
10
|
+
9fb57064e0c53ed80af8507acaab718a1e80184e e41e5aa2bc3074c2014d01ab1f603f69c327a83f iyue <ys1231@126.com> 1751010348 +0800 update by push
|
11
|
+
e41e5aa2bc3074c2014d01ab1f603f69c327a83f b07a43f0462bf25a8b1f4c0ca60c1b533dae1dde iyue <ys1231@126.com> 1751010741 +0800 update by push
|
12
|
+
b07a43f0462bf25a8b1f4c0ca60c1b533dae1dde 3d3cc6aab4eefed46c77dda27503bebcce88962c iyue <ys1231@126.com> 1751011447 +0800 update by push
|
13
|
+
3d3cc6aab4eefed46c77dda27503bebcce88962c 7e5935774ee7a85f2523427c9100f9c578ac172f iyue <ys1231@126.com> 1751011577 +0800 update by push
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
x��]j�0E�>k��R(����RB�2����:�\��%���Ƕu] ����1��UѩJ,�i��,��Y�̐���2(y2+�}��X��*5������\Ă�g�i�����%�7K��m=�̑9�F����5�4g�x����o�t\]��m�.��tCr
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
7e5935774ee7a85f2523427c9100f9c578ac172f
|
@@ -0,0 +1 @@
|
|
1
|
+
7e5935774ee7a85f2523427c9100f9c578ac172f
|
@@ -0,0 +1 @@
|
|
1
|
+
7e5935774ee7a85f2523427c9100f9c578ac172f
|
@@ -547,7 +547,7 @@ class InfoDecoder:
|
|
547
547
|
return real_type # 返回原始Java类型
|
548
548
|
return None
|
549
549
|
except Exception as e:
|
550
|
-
self.logger.
|
550
|
+
self.logger.debug(f" 🔍 源码分析失败: {e}")
|
551
551
|
return None
|
552
552
|
|
553
553
|
def _infer_message_type_from_field_name(self, field_name_raw: str) -> str:
|
@@ -10,6 +10,7 @@ Author: AI Assistant
|
|
10
10
|
"""
|
11
11
|
|
12
12
|
import re
|
13
|
+
import os
|
13
14
|
from pathlib import Path
|
14
15
|
from collections import deque
|
15
16
|
from typing import Set, Dict, List, Optional, Tuple
|
@@ -408,7 +409,7 @@ class ProtoReconstructor:
|
|
408
409
|
target_package = '.'.join(first_class.split('.')[:-1])
|
409
410
|
|
410
411
|
if not target_package:
|
411
|
-
self.logger.
|
412
|
+
self.logger.error("❌ 无法推断目标包名,跳过枚举解析")
|
412
413
|
return
|
413
414
|
|
414
415
|
# 解析目标包下的所有枚举
|
@@ -446,7 +447,7 @@ class ProtoReconstructor:
|
|
446
447
|
if not java_file_path:
|
447
448
|
error_msg = "找不到对应的Java文件"
|
448
449
|
self.failed_classes[class_name] = error_msg
|
449
|
-
self.logger.
|
450
|
+
self.logger.error(f" ❌ {error_msg}: {class_name}")
|
450
451
|
return
|
451
452
|
|
452
453
|
# 2. 尝试解析为枚举
|
@@ -463,7 +464,7 @@ class ProtoReconstructor:
|
|
463
464
|
if not info_string:
|
464
465
|
error_msg = "无法从Java文件中提取protobuf信息"
|
465
466
|
self.failed_classes[class_name] = error_msg
|
466
|
-
self.logger.
|
467
|
+
self.logger.error(f" ❌ {error_msg}: {class_name}")
|
467
468
|
return
|
468
469
|
|
469
470
|
# 4. 解码字节码为消息定义
|
@@ -480,7 +481,7 @@ class ProtoReconstructor:
|
|
480
481
|
else:
|
481
482
|
error_msg = "字节码解码失败,可能不是protobuf消息类"
|
482
483
|
self.failed_classes[class_name] = error_msg
|
483
|
-
self.logger.
|
484
|
+
self.logger.error(f" ❌ {error_msg}: {class_name}")
|
484
485
|
|
485
486
|
except Exception as e:
|
486
487
|
error_msg = f"处理异常: {str(e)}"
|
@@ -507,6 +508,18 @@ class ProtoReconstructor:
|
|
507
508
|
self.pending_classes.append(dep)
|
508
509
|
self.logger.info(f" 🔗 发现依赖: {dep}")
|
509
510
|
|
511
|
+
# 处理枚举依赖
|
512
|
+
self.logger.info(f" 🔍 开始处理枚举依赖...")
|
513
|
+
enum_count = 0
|
514
|
+
for field in message_def.fields:
|
515
|
+
if self._is_enum_type(field.type_name):
|
516
|
+
self.logger.info(f" 🔢 发现枚举字段: {field.name} -> {field.type_name}")
|
517
|
+
self._process_enum_dependency(field.type_name)
|
518
|
+
enum_count += 1
|
519
|
+
|
520
|
+
if enum_count == 0:
|
521
|
+
self.logger.info(f" 📊 未发现枚举依赖")
|
522
|
+
|
510
523
|
def _extract_dependencies(self, message_def: MessageDefinition) -> List[str]:
|
511
524
|
"""
|
512
525
|
从消息定义中提取所有依赖的类名
|
@@ -535,7 +548,7 @@ class ProtoReconstructor:
|
|
535
548
|
|
536
549
|
def _extract_field_dependencies(self, type_name: str, current_package: str) -> List[str]:
|
537
550
|
"""
|
538
|
-
从字段类型中提取所有依赖(包括map
|
551
|
+
从字段类型中提取所有依赖(包括map类型的键值类型和枚举类型)
|
539
552
|
|
540
553
|
Args:
|
541
554
|
type_name: 字段类型名
|
@@ -561,12 +574,168 @@ class ProtoReconstructor:
|
|
561
574
|
|
562
575
|
# 处理普通类型
|
563
576
|
else:
|
564
|
-
|
565
|
-
if
|
566
|
-
|
577
|
+
# 检查是否为枚举类型(以Enum开头或已知的枚举模式)
|
578
|
+
if self._is_enum_type(type_name):
|
579
|
+
# 直接处理枚举类型,尝试解析并添加到枚举定义中
|
580
|
+
self._process_enum_dependency(type_name)
|
581
|
+
else:
|
582
|
+
# 处理消息类型依赖
|
583
|
+
dep = self._resolve_field_dependency(type_name, current_package)
|
584
|
+
if dep:
|
585
|
+
dependencies.append(dep)
|
567
586
|
|
568
587
|
return dependencies
|
569
588
|
|
589
|
+
def _is_enum_type(self, type_name: str) -> bool:
|
590
|
+
"""
|
591
|
+
判断类型名是否为枚举类型
|
592
|
+
|
593
|
+
Args:
|
594
|
+
type_name: 类型名
|
595
|
+
|
596
|
+
Returns:
|
597
|
+
是否为枚举类型
|
598
|
+
"""
|
599
|
+
# 检查是否以Enum开头(混淆后的枚举名)
|
600
|
+
if type_name.startswith('Enum'):
|
601
|
+
return True
|
602
|
+
|
603
|
+
# 检查是否在已知的枚举类型列表中
|
604
|
+
# 这里可以添加更多的枚举类型判断逻辑
|
605
|
+
return False
|
606
|
+
|
607
|
+
def _process_enum_dependency(self, type_name: str) -> None:
|
608
|
+
"""
|
609
|
+
处理枚举依赖,查找并解析枚举类
|
610
|
+
|
611
|
+
Args:
|
612
|
+
type_name: 枚举类型名
|
613
|
+
"""
|
614
|
+
try:
|
615
|
+
self.logger.info(f" 🔍 搜索枚举文件: {type_name}")
|
616
|
+
# 尝试在所有包中查找这个枚举类
|
617
|
+
enum_file_path = self._find_enum_file(type_name)
|
618
|
+
if enum_file_path:
|
619
|
+
self.logger.info(f" ✅ 找到枚举文件: {enum_file_path}")
|
620
|
+
# 解析枚举文件
|
621
|
+
enum_values = self.java_parser.parse_enum_file(enum_file_path)
|
622
|
+
if enum_values:
|
623
|
+
# 构造完整的枚举类名
|
624
|
+
enum_class_name = self._get_enum_class_name_from_path(enum_file_path)
|
625
|
+
self.logger.info(f" 📝 枚举类名: {enum_class_name}")
|
626
|
+
|
627
|
+
# 创建枚举定义
|
628
|
+
enum_def = self._create_enum_definition(enum_class_name, enum_values)
|
629
|
+
|
630
|
+
# 检查是否有原始名称,如果有则使用原始名称
|
631
|
+
original_name = self._extract_original_enum_name(enum_file_path)
|
632
|
+
if original_name:
|
633
|
+
self.logger.info(f" 🏷️ 使用原始名称: {original_name}")
|
634
|
+
enum_def.name = original_name
|
635
|
+
|
636
|
+
# 添加到枚举定义中
|
637
|
+
self.enum_definitions[enum_class_name] = enum_def
|
638
|
+
self.logger.info(f" ✅ 成功处理枚举依赖: {enum_def.name} ({len(enum_def.values)} 个值)")
|
639
|
+
else:
|
640
|
+
self.logger.error(f" ❌ 枚举值解析失败: {enum_file_path}")
|
641
|
+
else:
|
642
|
+
self.logger.error(f" ❌ 未找到枚举文件: {type_name}")
|
643
|
+
|
644
|
+
except Exception as e:
|
645
|
+
self.logger.error(f" ❌ 处理枚举依赖失败 {type_name}: {e}")
|
646
|
+
import traceback
|
647
|
+
self.logger.debug(f" 详细错误: {traceback.format_exc()}")
|
648
|
+
|
649
|
+
def _find_enum_file(self, type_name: str) -> Optional[Path]:
|
650
|
+
"""
|
651
|
+
在所有包中查找枚举文件
|
652
|
+
|
653
|
+
Args:
|
654
|
+
type_name: 枚举类型名
|
655
|
+
|
656
|
+
Returns:
|
657
|
+
枚举文件路径或None
|
658
|
+
"""
|
659
|
+
# 在整个源码目录中搜索匹配的枚举文件
|
660
|
+
for root, dirs, files in os.walk(self.sources_dir):
|
661
|
+
for file in files:
|
662
|
+
if file.endswith('.java') and type_name in file:
|
663
|
+
file_path = Path(root) / file
|
664
|
+
# 检查是否确实是这个枚举类
|
665
|
+
if self._is_target_enum_file(file_path, type_name):
|
666
|
+
return file_path
|
667
|
+
return None
|
668
|
+
|
669
|
+
def _is_target_enum_file(self, file_path: Path, type_name: str) -> bool:
|
670
|
+
"""
|
671
|
+
检查文件是否是目标枚举类
|
672
|
+
|
673
|
+
Args:
|
674
|
+
file_path: Java文件路径
|
675
|
+
type_name: 目标枚举类型名
|
676
|
+
|
677
|
+
Returns:
|
678
|
+
是否为目标枚举文件
|
679
|
+
"""
|
680
|
+
try:
|
681
|
+
content = file_path.read_text(encoding='utf-8')
|
682
|
+
# 检查是否包含目标枚举类声明
|
683
|
+
enum_pattern = f'public\\s+enum\\s+{re.escape(type_name)}\\s+implements\\s+Internal\\.EnumLite'
|
684
|
+
return bool(re.search(enum_pattern, content))
|
685
|
+
except Exception:
|
686
|
+
return False
|
687
|
+
|
688
|
+
def _get_enum_class_name_from_path(self, file_path: Path) -> str:
|
689
|
+
"""
|
690
|
+
从文件路径构造完整的枚举类名
|
691
|
+
|
692
|
+
Args:
|
693
|
+
file_path: 枚举文件路径
|
694
|
+
|
695
|
+
Returns:
|
696
|
+
完整的枚举类名
|
697
|
+
"""
|
698
|
+
# 获取相对于源码目录的路径
|
699
|
+
relative_path = file_path.relative_to(self.sources_dir)
|
700
|
+
|
701
|
+
# 移除.java后缀并转换为类名
|
702
|
+
class_path = str(relative_path)[:-5] # 移除.java
|
703
|
+
class_name = class_path.replace('/', '.')
|
704
|
+
|
705
|
+
return class_name
|
706
|
+
|
707
|
+
def _extract_original_enum_name(self, file_path: Path) -> Optional[str]:
|
708
|
+
"""
|
709
|
+
从Java源码中提取实际的枚举类名
|
710
|
+
|
711
|
+
Args:
|
712
|
+
file_path: Java文件路径
|
713
|
+
|
714
|
+
Returns:
|
715
|
+
Java源码中定义的实际枚举类名
|
716
|
+
"""
|
717
|
+
try:
|
718
|
+
content = file_path.read_text(encoding='utf-8')
|
719
|
+
|
720
|
+
# 查找枚举类定义: public enum ClassName 或 enum ClassName
|
721
|
+
enum_pattern = r'(?:public\s+)?enum\s+(\w+)'
|
722
|
+
match = re.search(enum_pattern, content)
|
723
|
+
|
724
|
+
if match:
|
725
|
+
enum_name = match.group(1)
|
726
|
+
self.logger.info(f" 🏷️ 从Java源码提取枚举名: {enum_name}")
|
727
|
+
return enum_name
|
728
|
+
else:
|
729
|
+
# 如果没找到enum定义,可能是接口或其他类型,使用文件名
|
730
|
+
file_name = file_path.stem
|
731
|
+
self.logger.info(f" 🏷️ 未找到enum定义,使用文件名: {file_name}")
|
732
|
+
return file_name
|
733
|
+
|
734
|
+
except Exception as e:
|
735
|
+
self.logger.debug(f" 提取枚举名失败: {e}")
|
736
|
+
# 出错时使用文件名作为fallback
|
737
|
+
return file_path.stem
|
738
|
+
|
570
739
|
def _parse_map_types(self, map_content: str) -> tuple:
|
571
740
|
"""
|
572
741
|
解析map类型的键值类型
|
@@ -1143,7 +1312,7 @@ class ProtoReconstructor:
|
|
1143
1312
|
try:
|
1144
1313
|
# 生成proto文件内容
|
1145
1314
|
proto_content = self.proto_generator.generate_proto_file(
|
1146
|
-
message_def, self.message_definitions
|
1315
|
+
message_def, self.message_definitions, self.enum_definitions
|
1147
1316
|
)
|
1148
1317
|
|
1149
1318
|
# 确定输出路径并创建目录
|