pyarmor 8.4.5__zip → 8.4.7__zip

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.
Files changed (124) hide show
  1. {pyarmor-8.4.5 → pyarmor-8.4.7}/PKG-INFO +1 -1
  2. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/cli/__init__.py +1 -1
  3. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/cli/__main__.py +17 -0
  4. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/cli/context.py +8 -7
  5. pyarmor-8.4.7/pyarmor/cli/core.data.1 +0 -0
  6. pyarmor-8.4.7/pyarmor/cli/core.data.2 +0 -0
  7. pyarmor-8.4.7/pyarmor/cli/core.data.3 +0 -0
  8. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/cli/default.cfg +7 -1
  9. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/cli/docker.py +21 -0
  10. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/cli/generate.py +7 -0
  11. pyarmor-8.4.7/pyarmor/cli/hdinfo.py +64 -0
  12. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/cli/register.py +4 -2
  13. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/config.py +1 -1
  14. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor.egg-info/PKG-INFO +1 -1
  15. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor.egg-info/SOURCES.txt +1 -0
  16. pyarmor-8.4.7/pyarmor.egg-info/requires.txt +1 -0
  17. {pyarmor-8.4.5 → pyarmor-8.4.7}/setup.py +1 -1
  18. pyarmor-8.4.5/pyarmor/cli/core.data.1 +0 -0
  19. pyarmor-8.4.5/pyarmor/cli/core.data.2 +0 -0
  20. pyarmor-8.4.5/pyarmor/cli/core.data.3 +0 -0
  21. pyarmor-8.4.5/pyarmor.egg-info/requires.txt +0 -1
  22. {pyarmor-8.4.5 → pyarmor-8.4.7}/MANIFEST.in +0 -0
  23. {pyarmor-8.4.5 → pyarmor-8.4.7}/README.md +0 -0
  24. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/README.rst +0 -0
  25. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/__init__.py +0 -0
  26. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/benchmark.py +0 -0
  27. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/build_meta.py +0 -0
  28. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/cli/bootstrap.py +0 -0
  29. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/cli/config.py +0 -0
  30. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/cli/merge.py +0 -0
  31. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/cli/mixer.py +0 -0
  32. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/cli/plugin.py +0 -0
  33. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/cli/public_capsule.zip +0 -0
  34. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/cli/repack.py +0 -0
  35. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/cli/resource.py +0 -0
  36. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/cli/shell.py +0 -0
  37. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/cobuilder.py +0 -0
  38. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/README-ZH.md +0 -0
  39. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/README.md +0 -0
  40. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/build-for-exe.bat +0 -0
  41. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/build-for-freeze.bat +0 -0
  42. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/build-with-project.bat +0 -0
  43. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/build-with-project.sh +0 -0
  44. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/cx_Freeze/hello.py +0 -0
  45. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/cx_Freeze/queens.py +0 -0
  46. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/cx_Freeze/setup.py +0 -0
  47. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/helloworld/foo.py +0 -0
  48. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/obfuscate-app.bat +0 -0
  49. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/obfuscate-app.sh +0 -0
  50. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/obfuscate-pkg.bat +0 -0
  51. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/obfuscate-pkg.sh +0 -0
  52. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/pack-obfuscated-scripts.bat +0 -0
  53. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/pack-obfuscated-scripts.sh +0 -0
  54. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/py2exe/hello.py +0 -0
  55. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/py2exe/queens.py +0 -0
  56. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/py2exe/setup.py +0 -0
  57. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/pybench/Arithmetic.py +0 -0
  58. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/pybench/Calls.py +0 -0
  59. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/pybench/CommandLine.py +0 -0
  60. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/pybench/Constructs.py +0 -0
  61. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/pybench/Dict.py +0 -0
  62. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/pybench/Exceptions.py +0 -0
  63. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/pybench/Imports.py +0 -0
  64. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/pybench/Instances.py +0 -0
  65. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/pybench/Lists.py +0 -0
  66. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/pybench/Lookups.py +0 -0
  67. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/pybench/NewInstances.py +0 -0
  68. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/pybench/Numbers.py +0 -0
  69. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/pybench/Setup.py +0 -0
  70. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/pybench/Strings.py +0 -0
  71. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/pybench/Tuples.py +0 -0
  72. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/pybench/With.py +0 -0
  73. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/pybench/clockres.py +0 -0
  74. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/pybench/package/__init__.py +0 -0
  75. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/pybench/package/submodule.py +0 -0
  76. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/pybench/pybench.py +0 -0
  77. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/pybench/systimes.py +0 -0
  78. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/simple/queens.py +0 -0
  79. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/testmod/hello.py +0 -0
  80. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/testmod/queens.py +0 -0
  81. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/testpkg/main.py +0 -0
  82. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/testpkg/mypkg/__init__.py +0 -0
  83. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/examples/testpkg/mypkg/foo.py +0 -0
  84. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/helper/__init__.py +0 -0
  85. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/helper/build_data_module.py +0 -0
  86. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/helper/buildext.py +0 -0
  87. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/helper/get_bind_key.py +0 -0
  88. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/helper/get_license_info.py +0 -0
  89. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/helper/get_platform_name.py +0 -0
  90. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/helper/merge.py +0 -0
  91. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/helper/repack.py +0 -0
  92. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/helper/superuntime.py +0 -0
  93. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/license.tri +0 -0
  94. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/packer.py +0 -0
  95. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/platforms/darwin/x86_64/_pytransform.dylib +0 -0
  96. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/platforms/linux/x86/_pytransform.so +0 -0
  97. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/platforms/linux/x86_64/_pytransform.so +0 -0
  98. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/platforms/windows/x86/_pytransform.dll +0 -0
  99. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/platforms/windows/x86_64/_pytransform.dll +0 -0
  100. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/plugins/README.md +0 -0
  101. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/plugins/check_ntp_time.py +0 -0
  102. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/polyfills/__init__.py +0 -0
  103. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/polyfills/argparse.py +0 -0
  104. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/product.key +0 -0
  105. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/project.py +0 -0
  106. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/protect_code.pt +0 -0
  107. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/protect_code2.pt +0 -0
  108. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/public.key +0 -0
  109. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/public_capsule.zip +0 -0
  110. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/pyarmor-deprecated.py +0 -0
  111. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/pyarmor-webui.py +0 -0
  112. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/pyarmor.py +0 -0
  113. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/pyimcore.py +0 -0
  114. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/pyshield.key +0 -0
  115. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/pyshield.lic +0 -0
  116. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/pytransform.py +0 -0
  117. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/reform.py +0 -0
  118. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/register.py +0 -0
  119. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/sppmode.py +0 -0
  120. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor/utils.py +0 -0
  121. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor.egg-info/dependency_links.txt +0 -0
  122. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor.egg-info/entry_points.txt +0 -0
  123. {pyarmor-8.4.5 → pyarmor-8.4.7}/pyarmor.egg-info/top_level.txt +0 -0
  124. {pyarmor-8.4.5 → pyarmor-8.4.7}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: pyarmor
3
- Version: 8.4.5
3
+ Version: 8.4.7
4
4
  Summary: A tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts.
5
5
  Home-page: https://github.com/dashingsoft/pyarmor
6
6
  Author: Jondy Zhao
@@ -1,6 +1,6 @@
1
1
  import logging
2
2
 
3
- __VERSION__ = '8.4.5'
3
+ __VERSION__ = '8.4.7'
4
4
 
5
5
  logger = logging.getLogger('cli')
6
6
 
@@ -326,6 +326,10 @@ def cmd_reg(ctx, args):
326
326
  regsvr.register(regfile, args.product, group=group)
327
327
 
328
328
 
329
+ def cmd_man(ctx, args):
330
+ pass
331
+
332
+
329
333
  def main_parser():
330
334
  parser = argparse.ArgumentParser(
331
335
  prog='pyarmor',
@@ -619,6 +623,19 @@ https://pyarmor.readthedocs.io/en/stable/reference/man.html#pyarmor-reg
619
623
  cparser.set_defaults(func=cmd_reg)
620
624
 
621
625
 
626
+ def man_parser(subparsers):
627
+ '''Open Pyarmor.Man in web-browser'''
628
+ cparser = subparsers.add_parser(
629
+ 'man',
630
+ formatter_class=argparse.RawDescriptionHelpFormatter,
631
+ description=man_parser.__doc__,
632
+ help='register Pyarmor or upgrade old Pyarmor license'
633
+ )
634
+
635
+ cparser.set_defaults(func=cmd_man)
636
+ return cparser
637
+
638
+
622
639
  def log_settings(ctx, args):
623
640
  if args.debug:
624
641
  root = logging.getLogger()
@@ -203,12 +203,9 @@ class Context(object):
203
203
 
204
204
  def save_token(self, data):
205
205
  with open(self.license_token, 'wb') as f:
206
- if data.endswith(b'=='):
207
- f.write(data)
208
- else:
209
- n = data.rfind(b'==')
210
- assert n > 0
211
- f.write(data[:n+2])
206
+ if not data.endswith(b'=='):
207
+ raise RuntimeError('got invalid token %r' % data)
208
+ f.write(data)
212
209
 
213
210
  def clear_token(self):
214
211
  if os.path.exists(self.license_token):
@@ -469,7 +466,7 @@ class Context(object):
469
466
 
470
467
  @property
471
468
  def exclude_restrict_modules(self):
472
- return self._opts('builder', 'exclude_restrict_modules')
469
+ return self._opts('builder', 'exclude_restrict_modules').split()
473
470
 
474
471
  @property
475
472
  def co_threshold(self):
@@ -607,6 +604,10 @@ class Context(object):
607
604
  return runtime_package_template if len(platforms) < 2 else \
608
605
  multi_runtime_package_template
609
606
 
607
+ @property
608
+ def runtime_obf_key_mode(self):
609
+ return self._opti('runtime', 'obf_key_mode')
610
+
610
611
  #
611
612
  # RFT settings
612
613
  #
Binary file
Binary file
Binary file
@@ -3,7 +3,7 @@
3
3
  ;; Pyarmor version
4
4
  major = 8
5
5
  minor = 4
6
- patch = 5
6
+ patch = 7
7
7
 
8
8
  ;; Compatible core version
9
9
  cli.core = 5.4.3
@@ -206,6 +206,12 @@ package_name_format = pyarmor_runtime_{suffix}
206
206
  ;; pyarmor_runtime.so
207
207
  simple_extension_name = 1
208
208
 
209
+ ;; Obfuscate runtime key
210
+ ;; 0: no obfuscation
211
+ ;; 1: simple obfuscation
212
+ ;;
213
+ obf_key_mode = 0
214
+
209
215
  ;; Enable outer runtime key
210
216
  outer = 0
211
217
 
@@ -1,3 +1,24 @@
1
+ #! /usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ #
4
+ #############################################################
5
+ # #
6
+ # Copyright @ 2023 - Dashingsoft corp. #
7
+ # All rights reserved. #
8
+ # #
9
+ # Pyarmor #
10
+ # #
11
+ # Version: 8.3.0 - #
12
+ # #
13
+ #############################################################
14
+ #
15
+ #
16
+ # @File: cli/docker.py
17
+ #
18
+ # @Author: Jondy Zhao (pyarmor@163.com)
19
+ #
20
+ # @Create Date: Tue Aug 1 09:18:12 CST 2023
21
+ #
1
22
  import argparse
2
23
  import logging
3
24
  import os
@@ -100,6 +100,8 @@ class Builder(object):
100
100
  bootpath = self.ctx.cfg.get('builder', 'bootstrap_file')
101
101
  encoding = self.ctx.cfg.get('builder', 'encoding')
102
102
 
103
+ plugins = [x for x in self.ctx.plugins if hasattr(x, 'post_script')]
104
+
103
105
  namelist = []
104
106
  for res in self.ctx.resources + self.ctx.extra_resources:
105
107
  logger.info('process resource "%s"', res.fullname)
@@ -126,6 +128,11 @@ class Builder(object):
126
128
  fullpath = os.path.join(path, r.output_filename)
127
129
  os.makedirs(os.path.dirname(fullpath), exist_ok=True)
128
130
 
131
+ for plugin in plugins:
132
+ patched_source = plugin.post_script(self.ctx, r, source)
133
+ if patched_source:
134
+ source = patched_source
135
+
129
136
  logger.info('write %s', fullpath)
130
137
  with open(fullpath, 'w', encoding=encoding) as f:
131
138
  f.write(source)
@@ -0,0 +1,64 @@
1
+ #! /usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ #
4
+ #############################################################
5
+ # #
6
+ # Copyright @ 2023 - Dashingsoft corp. #
7
+ # All rights reserved. #
8
+ # #
9
+ # Pyarmor #
10
+ # #
11
+ # Version: 8.4.6 - #
12
+ # #
13
+ #############################################################
14
+ #
15
+ #
16
+ # @File: cli/hdinfo.py
17
+ #
18
+ # @Author: Jondy Zhao (pyarmor@163.com)
19
+ #
20
+ # @Create Date: Fri Dec 15 09:27:30 CST 2023
21
+ #
22
+ import argparse
23
+ import sys
24
+
25
+ from pyarmor.cli.core import Pytransform3
26
+
27
+
28
+ GROUP_LICENSE_MACHINE_FLAG = 22
29
+ HT_HARDDISK, HT_IFMAC, HT_IPV4 = range(3)
30
+
31
+
32
+ def get_hd_info(hdtype, name=None):
33
+ try:
34
+ return repr(Pytransform3.get_hd_info(hdtype, name))
35
+ except Exception as e:
36
+ return str(e)
37
+
38
+
39
+ def main(argv):
40
+ parser = argparse.ArgumentParser()
41
+ parser.add_argument('devname', nargs='*', help=(
42
+ 'In Linux get netcard name like "eth0" '
43
+ 'or harddisk name like "/dev/sda"'))
44
+ args = parser.parse_args(argv)
45
+
46
+ print('Machine ID: %s' % get_hd_info(GROUP_LICENSE_MACHINE_FLAG)[1:])
47
+
48
+ if not args.devname:
49
+ print('Default Harddisk Serial Number: %s' % get_hd_info(HT_HARDDISK))
50
+ print('Default Mac address: %s' % get_hd_info(HT_IFMAC))
51
+ print('Default IPv4 address: %s' % get_hd_info(HT_IPV4))
52
+ print('Multiple Mac addresses: %s' % get_hd_info(HT_IFMAC, name='*'))
53
+
54
+ for name in args.devname:
55
+ if name.startswith('/'):
56
+ print('Query Harddisk "%s" Serial Number: %s' %
57
+ (name, get_hd_info(HT_HARDDISK, name=name)))
58
+ else:
59
+ print('Query Netcard "/dev/%s" Mac Address: %s' %
60
+ (name, get_hd_info(HT_IFMAC, name=name)))
61
+
62
+
63
+ if __name__ == '__main__':
64
+ main(sys.argv[1:])
@@ -372,14 +372,16 @@ class WebRegister(Register):
372
372
  os.remove(self.ctx.license_token)
373
373
 
374
374
  def _check_product_name(self, name):
375
- if len(name) == 1 or name.count(name[0]) == len(name):
375
+ name = name.lower()
376
+ if name.count(name[0]) == len(name) or name.find('pyarmor') >= 0:
376
377
  raise RuntimeError('invalid product name "%s"' % name)
377
378
 
378
379
  def prepare(self, keyfile, product, upgrade=False):
379
380
  reginfo = self.parse_keyfile(keyfile)
380
381
  logger.info('prepare "%s"', keyfile)
381
382
 
382
- self._check_product_name(product)
383
+ if product:
384
+ self._check_product_name(product)
383
385
 
384
386
  rcode = self._get_old_rcode() if upgrade else None
385
387
  if upgrade and not rcode and keyfile.endswith('regcode-to-pro.txt'):
@@ -1,6 +1,6 @@
1
1
  from sys import platform
2
2
 
3
- version = '8.4.5'
3
+ version = '8.4.7'
4
4
 
5
5
  # The corresponding version of pytransform.so
6
6
  core_version = 'r52.6'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: pyarmor
3
- Version: 8.4.5
3
+ Version: 8.4.7
4
4
  Summary: A tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts.
5
5
  Home-page: https://github.com/dashingsoft/pyarmor
6
6
  Author: Jondy Zhao
@@ -43,6 +43,7 @@ pyarmor/cli/core.data.3
43
43
  pyarmor/cli/default.cfg
44
44
  pyarmor/cli/docker.py
45
45
  pyarmor/cli/generate.py
46
+ pyarmor/cli/hdinfo.py
46
47
  pyarmor/cli/merge.py
47
48
  pyarmor/cli/mixer.py
48
49
  pyarmor/cli/plugin.py
@@ -0,0 +1 @@
1
+ pyarmor.cli.core~=5.4.3
@@ -113,7 +113,7 @@ setup(
113
113
  },
114
114
 
115
115
  install_requires=[
116
- 'pyarmor.cli.core~=5.4.2'
116
+ 'pyarmor.cli.core~=5.4.3'
117
117
  ],
118
118
 
119
119
  entry_points={
Binary file
Binary file
Binary file
@@ -1 +0,0 @@
1
- pyarmor.cli.core~=5.4.2
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes