eea.stringinterp 1.2__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 (104) hide show
  1. eea_stringinterp-1.2/CONTRIBUTING.md +49 -0
  2. eea_stringinterp-1.2/MANIFEST.in +8 -0
  3. eea_stringinterp-1.2/PKG-INFO +188 -0
  4. eea_stringinterp-1.2/README.rst +130 -0
  5. eea_stringinterp-1.2/docs/HISTORY.txt +20 -0
  6. eea_stringinterp-1.2/docs/LICENSE.GPL +339 -0
  7. eea_stringinterp-1.2/docs/LICENSE.txt +19 -0
  8. eea_stringinterp-1.2/eea/__init__.py +4 -0
  9. eea_stringinterp-1.2/eea/stringinterp/README.txt +16 -0
  10. eea_stringinterp-1.2/eea/stringinterp/__init__.py +9 -0
  11. eea_stringinterp-1.2/eea/stringinterp/adapters/__init__.py +93 -0
  12. eea_stringinterp-1.2/eea/stringinterp/adapters/configure.zcml +16 -0
  13. eea_stringinterp-1.2/eea/stringinterp/adapters/dollarReplace.py +42 -0
  14. eea_stringinterp-1.2/eea/stringinterp/browser/__init__.py +1 -0
  15. eea_stringinterp-1.2/eea/stringinterp/browser/configure.zcml +6 -0
  16. eea_stringinterp-1.2/eea/stringinterp/configure.zcml +14 -0
  17. eea_stringinterp-1.2/eea/stringinterp/interfaces.py +7 -0
  18. eea_stringinterp-1.2/eea/stringinterp/locales/__init__.py +1 -0
  19. eea_stringinterp-1.2/eea/stringinterp/locales/bg/LC_MESSAGES/eea.po +0 -0
  20. eea_stringinterp-1.2/eea/stringinterp/locales/bg/LC_MESSAGES/plone.po +0 -0
  21. eea_stringinterp-1.2/eea/stringinterp/locales/cs/LC_MESSAGES/eea.po +0 -0
  22. eea_stringinterp-1.2/eea/stringinterp/locales/cs/LC_MESSAGES/plone.po +0 -0
  23. eea_stringinterp-1.2/eea/stringinterp/locales/da/LC_MESSAGES/eea.po +0 -0
  24. eea_stringinterp-1.2/eea/stringinterp/locales/da/LC_MESSAGES/plone.po +0 -0
  25. eea_stringinterp-1.2/eea/stringinterp/locales/de/LC_MESSAGES/eea.po +0 -0
  26. eea_stringinterp-1.2/eea/stringinterp/locales/de/LC_MESSAGES/plone.po +0 -0
  27. eea_stringinterp-1.2/eea/stringinterp/locales/eea.pot +0 -0
  28. eea_stringinterp-1.2/eea/stringinterp/locales/el/LC_MESSAGES/eea.po +0 -0
  29. eea_stringinterp-1.2/eea/stringinterp/locales/el/LC_MESSAGES/plone.po +0 -0
  30. eea_stringinterp-1.2/eea/stringinterp/locales/en/LC_MESSAGES/eea.po +0 -0
  31. eea_stringinterp-1.2/eea/stringinterp/locales/en/LC_MESSAGES/plone.po +0 -0
  32. eea_stringinterp-1.2/eea/stringinterp/locales/es/LC_MESSAGES/eea.po +0 -0
  33. eea_stringinterp-1.2/eea/stringinterp/locales/es/LC_MESSAGES/plone.po +0 -0
  34. eea_stringinterp-1.2/eea/stringinterp/locales/et/LC_MESSAGES/eea.po +0 -0
  35. eea_stringinterp-1.2/eea/stringinterp/locales/et/LC_MESSAGES/plone.po +0 -0
  36. eea_stringinterp-1.2/eea/stringinterp/locales/eu/LC_MESSAGES/eea.po +0 -0
  37. eea_stringinterp-1.2/eea/stringinterp/locales/eu/LC_MESSAGES/plone.po +0 -0
  38. eea_stringinterp-1.2/eea/stringinterp/locales/fi/LC_MESSAGES/eea.po +0 -0
  39. eea_stringinterp-1.2/eea/stringinterp/locales/fi/LC_MESSAGES/plone.po +0 -0
  40. eea_stringinterp-1.2/eea/stringinterp/locales/fr/LC_MESSAGES/eea.po +0 -0
  41. eea_stringinterp-1.2/eea/stringinterp/locales/fr/LC_MESSAGES/plone.po +0 -0
  42. eea_stringinterp-1.2/eea/stringinterp/locales/hr/LC_MESSAGES/eea.po +0 -0
  43. eea_stringinterp-1.2/eea/stringinterp/locales/hr/LC_MESSAGES/plone.po +0 -0
  44. eea_stringinterp-1.2/eea/stringinterp/locales/hu/LC_MESSAGES/eea.po +0 -0
  45. eea_stringinterp-1.2/eea/stringinterp/locales/hu/LC_MESSAGES/plone.po +0 -0
  46. eea_stringinterp-1.2/eea/stringinterp/locales/is/LC_MESSAGES/eea.po +0 -0
  47. eea_stringinterp-1.2/eea/stringinterp/locales/is/LC_MESSAGES/plone.po +0 -0
  48. eea_stringinterp-1.2/eea/stringinterp/locales/it/LC_MESSAGES/eea.po +0 -0
  49. eea_stringinterp-1.2/eea/stringinterp/locales/it/LC_MESSAGES/plone.po +0 -0
  50. eea_stringinterp-1.2/eea/stringinterp/locales/kl/LC_MESSAGES/eea.po +0 -0
  51. eea_stringinterp-1.2/eea/stringinterp/locales/kl/LC_MESSAGES/plone.po +0 -0
  52. eea_stringinterp-1.2/eea/stringinterp/locales/lt/LC_MESSAGES/eea.po +0 -0
  53. eea_stringinterp-1.2/eea/stringinterp/locales/lt/LC_MESSAGES/plone.po +0 -0
  54. eea_stringinterp-1.2/eea/stringinterp/locales/lv/LC_MESSAGES/eea.po +0 -0
  55. eea_stringinterp-1.2/eea/stringinterp/locales/lv/LC_MESSAGES/plone.po +0 -0
  56. eea_stringinterp-1.2/eea/stringinterp/locales/mt/LC_MESSAGES/eea.po +0 -0
  57. eea_stringinterp-1.2/eea/stringinterp/locales/mt/LC_MESSAGES/plone.po +0 -0
  58. eea_stringinterp-1.2/eea/stringinterp/locales/nl/LC_MESSAGES/eea.po +0 -0
  59. eea_stringinterp-1.2/eea/stringinterp/locales/nl/LC_MESSAGES/plone.po +0 -0
  60. eea_stringinterp-1.2/eea/stringinterp/locales/no/LC_MESSAGES/eea.po +0 -0
  61. eea_stringinterp-1.2/eea/stringinterp/locales/no/LC_MESSAGES/plone.po +0 -0
  62. eea_stringinterp-1.2/eea/stringinterp/locales/pl/LC_MESSAGES/eea.po +0 -0
  63. eea_stringinterp-1.2/eea/stringinterp/locales/pl/LC_MESSAGES/plone.po +0 -0
  64. eea_stringinterp-1.2/eea/stringinterp/locales/plone-manual.pot +0 -0
  65. eea_stringinterp-1.2/eea/stringinterp/locales/pt/LC_MESSAGES/eea.po +0 -0
  66. eea_stringinterp-1.2/eea/stringinterp/locales/pt/LC_MESSAGES/plone.po +0 -0
  67. eea_stringinterp-1.2/eea/stringinterp/locales/pt_BR/LC_MESSAGES/eea.po +0 -0
  68. eea_stringinterp-1.2/eea/stringinterp/locales/pt_BR/LC_MESSAGES/plone.po +0 -0
  69. eea_stringinterp-1.2/eea/stringinterp/locales/ro/LC_MESSAGES/eea.po +0 -0
  70. eea_stringinterp-1.2/eea/stringinterp/locales/ro/LC_MESSAGES/plone.po +0 -0
  71. eea_stringinterp-1.2/eea/stringinterp/locales/ru/LC_MESSAGES/eea.po +0 -0
  72. eea_stringinterp-1.2/eea/stringinterp/locales/ru/LC_MESSAGES/plone.po +0 -0
  73. eea_stringinterp-1.2/eea/stringinterp/locales/sk/LC_MESSAGES/eea.po +0 -0
  74. eea_stringinterp-1.2/eea/stringinterp/locales/sk/LC_MESSAGES/plone.po +0 -0
  75. eea_stringinterp-1.2/eea/stringinterp/locales/sl/LC_MESSAGES/eea.po +0 -0
  76. eea_stringinterp-1.2/eea/stringinterp/locales/sl/LC_MESSAGES/plone.po +0 -0
  77. eea_stringinterp-1.2/eea/stringinterp/locales/sv/LC_MESSAGES/eea.po +0 -0
  78. eea_stringinterp-1.2/eea/stringinterp/locales/sv/LC_MESSAGES/plone.po +0 -0
  79. eea_stringinterp-1.2/eea/stringinterp/locales/tr/LC_MESSAGES/eea.po +0 -0
  80. eea_stringinterp-1.2/eea/stringinterp/locales/tr/LC_MESSAGES/plone.po +0 -0
  81. eea_stringinterp-1.2/eea/stringinterp/locales/update.sh +6 -0
  82. eea_stringinterp-1.2/eea/stringinterp/locales/zh_TW/LC_MESSAGES/eea.po +0 -0
  83. eea_stringinterp-1.2/eea/stringinterp/locales/zh_TW/LC_MESSAGES/plone.po +0 -0
  84. eea_stringinterp-1.2/eea/stringinterp/profiles/default/browserlayer.xml +7 -0
  85. eea_stringinterp-1.2/eea/stringinterp/profiles/default/metadata.xml +4 -0
  86. eea_stringinterp-1.2/eea/stringinterp/profiles/uninstall/browserlayer.xml +7 -0
  87. eea_stringinterp-1.2/eea/stringinterp/profiles.zcml +33 -0
  88. eea_stringinterp-1.2/eea/stringinterp/setuphandlers.py +25 -0
  89. eea_stringinterp-1.2/eea/stringinterp/tests/__init__.py +1 -0
  90. eea_stringinterp-1.2/eea/stringinterp/tests/base.py +51 -0
  91. eea_stringinterp-1.2/eea/stringinterp/tests/test_doctests.py +49 -0
  92. eea_stringinterp-1.2/eea/stringinterp/upgrades/__init__.py +1 -0
  93. eea_stringinterp-1.2/eea/stringinterp/upgrades/configure.zcml +18 -0
  94. eea_stringinterp-1.2/eea/stringinterp/version.txt +1 -0
  95. eea_stringinterp-1.2/eea.stringinterp.egg-info/PKG-INFO +188 -0
  96. eea_stringinterp-1.2/eea.stringinterp.egg-info/SOURCES.txt +102 -0
  97. eea_stringinterp-1.2/eea.stringinterp.egg-info/dependency_links.txt +1 -0
  98. eea_stringinterp-1.2/eea.stringinterp.egg-info/entry_points.txt +2 -0
  99. eea_stringinterp-1.2/eea.stringinterp.egg-info/namespace_packages.txt +1 -0
  100. eea_stringinterp-1.2/eea.stringinterp.egg-info/not-zip-safe +1 -0
  101. eea_stringinterp-1.2/eea.stringinterp.egg-info/requires.txt +4 -0
  102. eea_stringinterp-1.2/eea.stringinterp.egg-info/top_level.txt +1 -0
  103. eea_stringinterp-1.2/setup.cfg +4 -0
  104. eea_stringinterp-1.2/setup.py +57 -0
@@ -0,0 +1,49 @@
1
+ # How to contribute
2
+
3
+ To start, is important to mention that we keep all EEA pacakges under EEA Organisation
4
+ on GitHub (https://github.com/eea) and we fork them to Collective so everyone can
5
+ contribute to them. We keep the repositories from Collective and EEA in sync.
6
+
7
+ We want to keep it as easy as possible to contribute changes that
8
+ get things working. There are a few guidelines that we
9
+ need contributors to follow so that we can have a chance of keeping on
10
+ top of things.
11
+
12
+ ## Getting Started
13
+
14
+ * Make sure you have a [GitHub account](https://github.com/signup/free)
15
+ * If you need to submit a ticket do it under EEA Organisation area (https://github.com/eea)
16
+ under the respective package, e.g. https://github.com/eea/eea.stringinterp/issues
17
+ * Submit a ticket for your issue, assuming one does not already exist.
18
+ * Clearly describe the issue including steps to reproduce when it is a bug.
19
+ * If case state the browser and operating system used.
20
+ * We also keep a discussion lists for most of the public packages under Google Groups.
21
+
22
+ Please note that adding a bug report or feature request in the EEA github does not
23
+ automatically mean that EEA will work on them, since there are budget implications.
24
+
25
+ The issues/features registered in github are regarded only as community requests and
26
+ here to facilitate the Plone community contributions.
27
+
28
+ EEA will work directly on the Plone community's requests when they coincide with
29
+ EEA's planned projects. In this case we will transfer the ticket to the EEA
30
+ official issue register.
31
+
32
+ ## Making Changes
33
+
34
+ * Fork the repository from EEA or directly commit within Collective fork
35
+ * Make sure you added an entry under HISTORY.txt describing your changes
36
+ * Make sure you have added the necessary tests for your changes (do not forget major browsers).
37
+ * Make sure you have updated and added documentation when necessary.
38
+ * Run _all_ the tests to assure nothing else was accidentally broken.
39
+
40
+ ## Submitting Changes
41
+
42
+ * Push your changes in your fork of the repository.
43
+ * Submit a pull request to the upstream repository (EEA).
44
+
45
+ # Additional Resources
46
+
47
+ * [General GitHub documentation](http://help.github.com/)
48
+ * [GitHub pull request documentation](http://help.github.com/send-pull-requests/)
49
+ * [EEA packages](https://eea.github.io/docs/IT-systems/)
@@ -0,0 +1,8 @@
1
+ include *.md *.rst *.txt
2
+ graft docs
3
+ graft eea
4
+ global-exclude *pyc
5
+ global-exclude *~
6
+ global-exclude *.un~
7
+
8
+ global-include *.mo
@@ -0,0 +1,188 @@
1
+ Metadata-Version: 2.4
2
+ Name: eea.stringinterp
3
+ Version: 1.2
4
+ Summary: Extended plone.stringinterp functionality
5
+ Home-page: https://github.com/eea/eea.stringinterp
6
+ Author: European Environment Agency: IDM2 A-Team
7
+ Author-email: eea-edw-a-team-alerts@googlegroups.com
8
+ License: GPL version 2
9
+ Keywords: EEA Add-ons Plone Zope
10
+ Classifier: Environment :: Web Environment
11
+ Classifier: Framework :: Plone
12
+ Classifier: Framework :: Plone :: Addon
13
+ Classifier: Framework :: Plone :: 5.2
14
+ Classifier: Framework :: Plone :: 6.0
15
+ Classifier: Programming Language :: Python
16
+ Classifier: Programming Language :: Python :: 2.7
17
+ Classifier: Programming Language :: Python :: 3.7
18
+ Classifier: Programming Language :: Python :: 3.8
19
+ Classifier: Programming Language :: Python :: 3.9
20
+ Classifier: Operating System :: OS Independent
21
+ Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2)
22
+ Description-Content-Type: text/x-rst
23
+ Requires-Dist: setuptools
24
+ Provides-Extra: test
25
+ Requires-Dist: plone.app.testing; extra == "test"
26
+ Dynamic: author
27
+ Dynamic: author-email
28
+ Dynamic: classifier
29
+ Dynamic: description
30
+ Dynamic: description-content-type
31
+ Dynamic: home-page
32
+ Dynamic: keywords
33
+ Dynamic: license
34
+ Dynamic: provides-extra
35
+ Dynamic: requires-dist
36
+ Dynamic: summary
37
+
38
+ ==========================
39
+ eea.stringinterp
40
+ ==========================
41
+ .. image:: https://ci.eionet.europa.eu/buildStatus/icon?job=eea/eea.stringinterp/develop
42
+ :target: https://ci.eionet.europa.eu/job/eea/job/eea.stringinterp/job/develop/display/redirect
43
+ :alt: Develop
44
+ .. image:: https://ci.eionet.europa.eu/buildStatus/icon?job=eea/eea.stringinterp/master
45
+ :target: https://ci.eionet.europa.eu/job/eea/job/eea.stringinterp/job/master/display/redirect
46
+ :alt: Master
47
+
48
+ Extends `plone.stringinterp <https://github.com/plone/plone.stringinterp>`_ functionallity with a
49
+ generic fallback string substitution adapter that lookup **context** properties if no explicit named
50
+ **IStringSubstitution** is defined.
51
+
52
+ .. contents::
53
+
54
+ Main features
55
+ =============
56
+
57
+ 1. **Generic string substitution** adapter to easily grab custom properties from context
58
+
59
+ Install
60
+ =======
61
+
62
+ * Add eea.stringinterp to your eggs section in your buildout and
63
+ re-run buildout::
64
+
65
+ [buildout]
66
+ eggs +=
67
+ eea.stringinterp
68
+
69
+ * You can download a sample buildout from:
70
+
71
+ - https://github.com/eea/eea.stringinterp/tree/master/buildouts/plone4
72
+ - https://github.com/eea/eea.stringinterp/tree/master/buildouts/plone5
73
+
74
+ * Or via docker::
75
+
76
+ $ docker run --rm -p 8080:8080 -e ADDONS="eea.stringinterp" plone
77
+
78
+ * Install *eea.stringinterp* within Site Setup > Add-ons
79
+
80
+
81
+ Usage
82
+ =====
83
+
84
+ * Via **Site Setup > Dexterity Content Types > Page > Fields Tab** add new Field, `e.g.: custom_field`
85
+ * Via **Site Setup > Content Rules** add a rule to send email on Workflow change
86
+ * Within **Message** add some `Custom: ${custom_field}`
87
+ * Add new **Page** and fill the **custom_field**
88
+ * Publish your **Page**
89
+ * Check your email
90
+
91
+ Code usage
92
+ ==========
93
+
94
+ >>> from plone.stringinterp.interfaces import IStringSubstitution
95
+ >>> substitute = IStringSubstitution(sandbox)
96
+ >>> substitute
97
+ <eea.stringinterp.adapters.GenericContextAttributeSubstitution object at...>
98
+
99
+ >>> substitute('title')
100
+ 'Sandbox'
101
+
102
+ >>> substitute('effective')
103
+ 'Oct 10, 2021 12:00 AM'
104
+
105
+ >>> substitute('Subject')
106
+ 'air, pollution'
107
+
108
+
109
+ Buildout installation
110
+ =====================
111
+
112
+ - `Plone 4+ <https://github.com/eea/eea.stringinterp/tree/master/buildouts/plone4>`_
113
+ - `Plone 5+ <https://github.com/eea/eea.stringinterp/tree/master/buildouts/plone5>`_
114
+
115
+
116
+ Source code
117
+ ===========
118
+
119
+ - `Plone 4+ on github <https://github.com/eea/eea.stringinterp>`_
120
+ - `Plone 5+ on github <https://github.com/eea/eea.stringinterp>`_
121
+
122
+
123
+ Eggs repository
124
+ ===============
125
+
126
+ - https://pypi.python.org/pypi/eea.stringinterp
127
+ - http://eggrepo.eea.europa.eu/simple
128
+
129
+
130
+ Plone versions
131
+ ==============
132
+ It has been developed and tested for Plone 4 and 5. See buildouts section above.
133
+
134
+
135
+ How to contribute
136
+ =================
137
+ See the `contribution guidelines (CONTRIBUTING.md) <https://github.com/eea/eea.stringinterp/blob/master/CONTRIBUTING.md>`_.
138
+
139
+ Copyright and license
140
+ =====================
141
+
142
+ eea.stringinterp (the Original Code) is free software; you can
143
+ redistribute it and/or modify it under the terms of the
144
+ GNU General Public License as published by the Free Software Foundation;
145
+ either version 2 of the License, or (at your option) any later version.
146
+
147
+ This program is distributed in the hope that it will be useful, but
148
+ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
149
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
150
+ for more details.
151
+
152
+ You should have received a copy of the GNU General Public License along
153
+ with this program; if not, write to the Free Software Foundation, Inc., 59
154
+ Temple Place, Suite 330, Boston, MA 02111-1307 USA.
155
+
156
+ The Initial Owner of the Original Code is European Environment Agency (EEA).
157
+ Portions created by Eau de Web are Copyright (C) 2009 by
158
+ European Environment Agency. All Rights Reserved.
159
+
160
+
161
+ Funding
162
+ =======
163
+
164
+ EEA_ - European Environment Agency (EU)
165
+
166
+ .. _EEA: https://www.eea.europa.eu/
167
+ .. _`EEA Web Systems Training`: http://www.youtube.com/user/eeacms/videos?view=1
168
+
169
+ Changelog
170
+ =========
171
+
172
+ 1.2 - (2025-11-18)
173
+ ---------------------------
174
+ * Change: Replace Python linting to ruff
175
+ [mihaidobrescu1111 = refs #286821]
176
+ * Change: Add plone6 tests
177
+ [mihaidobrescu1111 = refs #293593]
178
+
179
+ 1.1 - (2023-08-31)
180
+ ---------------------------
181
+ * remove python_requires from setup.py
182
+ [valipod - refs #161113]
183
+
184
+ 1.0 - (2021-05-28)
185
+ -----------------------
186
+
187
+ * Add 'Generic string substitution' adapter to easily grab properties from context
188
+ [avoinea - refs #134513]
@@ -0,0 +1,130 @@
1
+ ==========================
2
+ eea.stringinterp
3
+ ==========================
4
+ .. image:: https://ci.eionet.europa.eu/buildStatus/icon?job=eea/eea.stringinterp/develop
5
+ :target: https://ci.eionet.europa.eu/job/eea/job/eea.stringinterp/job/develop/display/redirect
6
+ :alt: Develop
7
+ .. image:: https://ci.eionet.europa.eu/buildStatus/icon?job=eea/eea.stringinterp/master
8
+ :target: https://ci.eionet.europa.eu/job/eea/job/eea.stringinterp/job/master/display/redirect
9
+ :alt: Master
10
+
11
+ Extends `plone.stringinterp <https://github.com/plone/plone.stringinterp>`_ functionallity with a
12
+ generic fallback string substitution adapter that lookup **context** properties if no explicit named
13
+ **IStringSubstitution** is defined.
14
+
15
+ .. contents::
16
+
17
+ Main features
18
+ =============
19
+
20
+ 1. **Generic string substitution** adapter to easily grab custom properties from context
21
+
22
+ Install
23
+ =======
24
+
25
+ * Add eea.stringinterp to your eggs section in your buildout and
26
+ re-run buildout::
27
+
28
+ [buildout]
29
+ eggs +=
30
+ eea.stringinterp
31
+
32
+ * You can download a sample buildout from:
33
+
34
+ - https://github.com/eea/eea.stringinterp/tree/master/buildouts/plone4
35
+ - https://github.com/eea/eea.stringinterp/tree/master/buildouts/plone5
36
+
37
+ * Or via docker::
38
+
39
+ $ docker run --rm -p 8080:8080 -e ADDONS="eea.stringinterp" plone
40
+
41
+ * Install *eea.stringinterp* within Site Setup > Add-ons
42
+
43
+
44
+ Usage
45
+ =====
46
+
47
+ * Via **Site Setup > Dexterity Content Types > Page > Fields Tab** add new Field, `e.g.: custom_field`
48
+ * Via **Site Setup > Content Rules** add a rule to send email on Workflow change
49
+ * Within **Message** add some `Custom: ${custom_field}`
50
+ * Add new **Page** and fill the **custom_field**
51
+ * Publish your **Page**
52
+ * Check your email
53
+
54
+ Code usage
55
+ ==========
56
+
57
+ >>> from plone.stringinterp.interfaces import IStringSubstitution
58
+ >>> substitute = IStringSubstitution(sandbox)
59
+ >>> substitute
60
+ <eea.stringinterp.adapters.GenericContextAttributeSubstitution object at...>
61
+
62
+ >>> substitute('title')
63
+ 'Sandbox'
64
+
65
+ >>> substitute('effective')
66
+ 'Oct 10, 2021 12:00 AM'
67
+
68
+ >>> substitute('Subject')
69
+ 'air, pollution'
70
+
71
+
72
+ Buildout installation
73
+ =====================
74
+
75
+ - `Plone 4+ <https://github.com/eea/eea.stringinterp/tree/master/buildouts/plone4>`_
76
+ - `Plone 5+ <https://github.com/eea/eea.stringinterp/tree/master/buildouts/plone5>`_
77
+
78
+
79
+ Source code
80
+ ===========
81
+
82
+ - `Plone 4+ on github <https://github.com/eea/eea.stringinterp>`_
83
+ - `Plone 5+ on github <https://github.com/eea/eea.stringinterp>`_
84
+
85
+
86
+ Eggs repository
87
+ ===============
88
+
89
+ - https://pypi.python.org/pypi/eea.stringinterp
90
+ - http://eggrepo.eea.europa.eu/simple
91
+
92
+
93
+ Plone versions
94
+ ==============
95
+ It has been developed and tested for Plone 4 and 5. See buildouts section above.
96
+
97
+
98
+ How to contribute
99
+ =================
100
+ See the `contribution guidelines (CONTRIBUTING.md) <https://github.com/eea/eea.stringinterp/blob/master/CONTRIBUTING.md>`_.
101
+
102
+ Copyright and license
103
+ =====================
104
+
105
+ eea.stringinterp (the Original Code) is free software; you can
106
+ redistribute it and/or modify it under the terms of the
107
+ GNU General Public License as published by the Free Software Foundation;
108
+ either version 2 of the License, or (at your option) any later version.
109
+
110
+ This program is distributed in the hope that it will be useful, but
111
+ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
112
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
113
+ for more details.
114
+
115
+ You should have received a copy of the GNU General Public License along
116
+ with this program; if not, write to the Free Software Foundation, Inc., 59
117
+ Temple Place, Suite 330, Boston, MA 02111-1307 USA.
118
+
119
+ The Initial Owner of the Original Code is European Environment Agency (EEA).
120
+ Portions created by Eau de Web are Copyright (C) 2009 by
121
+ European Environment Agency. All Rights Reserved.
122
+
123
+
124
+ Funding
125
+ =======
126
+
127
+ EEA_ - European Environment Agency (EU)
128
+
129
+ .. _EEA: https://www.eea.europa.eu/
130
+ .. _`EEA Web Systems Training`: http://www.youtube.com/user/eeacms/videos?view=1
@@ -0,0 +1,20 @@
1
+ Changelog
2
+ =========
3
+
4
+ 1.2 - (2025-11-18)
5
+ ---------------------------
6
+ * Change: Replace Python linting to ruff
7
+ [mihaidobrescu1111 = refs #286821]
8
+ * Change: Add plone6 tests
9
+ [mihaidobrescu1111 = refs #293593]
10
+
11
+ 1.1 - (2023-08-31)
12
+ ---------------------------
13
+ * remove python_requires from setup.py
14
+ [valipod - refs #161113]
15
+
16
+ 1.0 - (2021-05-28)
17
+ -----------------------
18
+
19
+ * Add 'Generic string substitution' adapter to easily grab properties from context
20
+ [avoinea - refs #134513]