rbeesoft 2.0.3__tar.gz → 2.0.4__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.
Files changed (30) hide show
  1. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/PKG-INFO +1 -1
  2. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/pyproject.toml +1 -1
  3. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/app/signlicense.py +14 -9
  4. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/app/ui/rbeesoftmainwindow.py +2 -1
  5. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/app/ui/widgets/pages/page.py +5 -1
  6. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/README.md +0 -0
  7. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/__init__.py +0 -0
  8. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/app/__init__.py +0 -0
  9. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/app/core/__init__.py +0 -0
  10. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/app/generatekeys.py +0 -0
  11. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/app/license.json +0 -0
  12. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/app/main.py +0 -0
  13. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/app/ui/__init__.py +0 -0
  14. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/app/ui/processes/__init__.py +0 -0
  15. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/app/ui/processes/dummyprocess.py +0 -0
  16. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/app/ui/processes/process.py +0 -0
  17. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/app/ui/processes/processrunner.py +0 -0
  18. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/app/ui/settings.py +0 -0
  19. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/app/ui/widgets/__init__.py +0 -0
  20. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/app/ui/widgets/centraldockwidget.py +0 -0
  21. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/app/ui/widgets/logdockwidget.py +0 -0
  22. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/app/ui/widgets/pages/__init__.py +0 -0
  23. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/app/ui/widgets/pages/pagerouter.py +0 -0
  24. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/common/__init__.py +0 -0
  25. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/common/licenseexception.py +0 -0
  26. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/common/licensemanager.py +0 -0
  27. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/common/logmanager.py +0 -0
  28. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/common/logmanagerlistener.py +0 -0
  29. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/common/singleton.py +0 -0
  30. {rbeesoft-2.0.3 → rbeesoft-2.0.4}/src/rbeesoft/webapp/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rbeesoft
3
- Version: 2.0.3
3
+ Version: 2.0.4
4
4
  Summary:
5
5
  Author: Brecheisen
6
6
  Author-email: r.brecheisen@maastrichtuniversity.nl
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "rbeesoft"
3
- version = "2.0.3"
3
+ version = "2.0.4"
4
4
  description = ""
5
5
  authors = [
6
6
  {name = "Brecheisen", email = "r.brecheisen@maastrichtuniversity.nl"}
@@ -1,4 +1,5 @@
1
1
  import base64
2
+ import argparse
2
3
  import json
3
4
  import time
4
5
  from pathlib import Path
@@ -49,19 +50,23 @@ def sign_license(payload: dict, priv: Ed25519PrivateKey) -> dict:
49
50
  }
50
51
 
51
52
  def main():
52
- priv_path = Path.home() / 'keys/ed25519_private.key'
53
- out_path = Path("license.json")
54
-
53
+ parser = argparse.ArgumentParser()
54
+ parser.add_argument('private_key_path', help='Path to private key file')
55
+ parser.add_argument('output_dir', help='Path to output directory where license.json is written')
56
+ parser.add_argument('product', help='Name of product')
57
+ parser.add_argument('expires_days_from_now', help='Number of days to expire', type=int)
58
+ parser.add_argument('--features', help='Feature list', default='')
59
+ args = parser.parse_args()
60
+ priv_path = Path(args.private_key_path) # Path.home() / 'keys/ed25519_private.key'
61
+ out_path = Path(args.output_dir) / 'license.json'
55
62
  priv = load_private_key(priv_path)
56
-
57
63
  payload = make_license_payload(
58
- customer="Ralph Example",
59
- product="MyPySideApp Pro",
60
- expires_days_from_now=30,
61
- features=["pro", "export_pdf"],
64
+ customer='Default customer',
65
+ product=args.product,
66
+ expires_days_from_now=args.expires_days_from_now,
67
+ features=[x.strip() for x in args.features.split(',')],
62
68
  machine_fp=None, # set to a fingerprint to bind to a device
63
69
  )
64
-
65
70
  signed = sign_license(payload, priv)
66
71
  out_path.write_text(json.dumps(signed, indent=2, ensure_ascii=False), encoding="utf-8")
67
72
  print(f"Wrote signed license to: {out_path.resolve()}")
@@ -35,13 +35,13 @@ class RbeesoftMainWindow(QMainWindow):
35
35
  self.setWindowTitle(self.app_title())
36
36
  self.addDockWidget(Qt.DockWidgetArea.TopDockWidgetArea, self.central_dockwidget())
37
37
  self.addDockWidget(Qt.DockWidgetArea.BottomDockWidgetArea, self.log_dockwidget())
38
+ LOG.info(f'Settings path: {self.settings().fileName()}')
38
39
  if self.app_icon():
39
40
  self.setWindowIcon(self.app_icon())
40
41
  self.load_geometry_and_state()
41
42
  self.init_default_menus()
42
43
  self.check_license()
43
44
  self.statusBar().showMessage('Ready')
44
- LOG.info(f'Settings path: {self.settings().fileName()}')
45
45
 
46
46
  def init_default_menus(self):
47
47
  # Application menu
@@ -117,6 +117,7 @@ class RbeesoftMainWindow(QMainWindow):
117
117
  if file_path:
118
118
  try:
119
119
  self._license = self.license_manager().verify(file_path)
120
+ LOG.info(f'License found at {file_path}')
120
121
  LOG.info('License OK')
121
122
  return True
122
123
  except LicenseException as e:
@@ -5,11 +5,12 @@ from PySide6.QtWidgets import QWidget
5
5
  class Page(QWidget):
6
6
  page_changed = Signal(str)
7
7
 
8
- def __init__(self, name, title, settings):
8
+ def __init__(self, name, title, settings, license=None):
9
9
  super(Page, self).__init__()
10
10
  self._name = name
11
11
  self._title = title
12
12
  self._settings = settings
13
+ self._license = license
13
14
 
14
15
  def name(self):
15
16
  return self._name
@@ -20,5 +21,8 @@ class Page(QWidget):
20
21
  def settings(self):
21
22
  return self._settings
22
23
 
24
+ def license(self):
25
+ return self._license
26
+
23
27
  def switch_to_page(self, name):
24
28
  self.page_changed.emit(name)
File without changes