|
Lines 51-59
from __future__ import print_function
Link Here
|
| 51 |
# /usr/share/common-licenses/AGPL-3; if not, see |
51 |
# /usr/share/common-licenses/AGPL-3; if not, see |
| 52 |
# <https://www.gnu.org/licenses/>. |
52 |
# <https://www.gnu.org/licenses/>. |
| 53 |
|
53 |
|
|
|
54 |
import io |
| 54 |
import re |
55 |
import re |
| 55 |
import os |
56 |
import os |
| 56 |
import sys |
57 |
import sys |
|
|
58 |
import warnings |
| 57 |
import copy |
59 |
import copy |
| 58 |
import json |
60 |
import json |
| 59 |
from email.utils import formatdate |
61 |
from email.utils import formatdate |
|
Lines 61-67
from email.utils import formatdate
Link Here
|
| 61 |
import polib |
63 |
import polib |
| 62 |
import xml.etree.ElementTree as ET |
64 |
import xml.etree.ElementTree as ET |
| 63 |
|
65 |
|
| 64 |
from debian.deb822 import Deb822 |
66 |
from debian.deb822 import Deb822, Packages |
| 65 |
from . import helper |
67 |
from . import helper |
| 66 |
try: |
68 |
try: |
| 67 |
from typing import Iterable, Iterator, List, Optional, Tuple, Union # noqa F401 |
69 |
from typing import Iterable, Iterator, List, Optional, Tuple, Union # noqa F401 |
|
Lines 70-76
except ImportError:
Link Here
|
| 70 |
|
72 |
|
| 71 |
MODULE = 'Module' |
73 |
MODULE = 'Module' |
| 72 |
PYTHON = 'Python' |
74 |
PYTHON = 'Python' |
| 73 |
PYTHON_VERSION = 'PythonVersion' |
|
|
| 74 |
DEFINITION = 'Definition' |
75 |
DEFINITION = 'Definition' |
| 75 |
JAVASCRIPT = 'Javascript' |
76 |
JAVASCRIPT = 'Javascript' |
| 76 |
CATEGORY = 'Category' |
77 |
CATEGORY = 'Category' |
|
Lines 121-129
class UMC_Module(dict):
Link Here
|
| 121 |
return None |
122 |
return None |
| 122 |
|
123 |
|
| 123 |
@property |
124 |
@property |
| 124 |
def python_version(self): |
125 |
def python_versions(self): |
| 125 |
# type: () -> float |
126 |
# type: () -> list[float] |
| 126 |
return 3 if self.get(PYTHON_VERSION, ['2.7'])[0].startswith('3') else 2.7 |
127 |
versions = [2.7] |
|
|
128 |
if '${python3:Provides}' in self['provides']: |
| 129 |
versions.append(3) |
| 130 |
if '${python:Provides}' not in self['provides']: |
| 131 |
versions.remove(2.7) |
| 132 |
return versions |
| 127 |
|
133 |
|
| 128 |
@property |
134 |
@property |
| 129 |
def js_path(self): |
135 |
def js_path(self): |
|
Lines 250-259
def read_modules(package, core=False):
Link Here
|
| 250 |
modules = [] # type: List[UMC_Module] |
256 |
modules = [] # type: List[UMC_Module] |
| 251 |
|
257 |
|
| 252 |
file_umc_module = os.path.join('debian/', package + '.umc-modules') |
258 |
file_umc_module = os.path.join('debian/', package + '.umc-modules') |
|
|
259 |
file_control = os.path.join('debian/control') |
| 253 |
|
260 |
|
| 254 |
if not os.path.isfile(file_umc_module): |
261 |
if not os.path.isfile(file_umc_module): |
| 255 |
return modules |
262 |
return modules |
| 256 |
|
263 |
|
|
|
264 |
provides = [] |
| 265 |
with io.open(file_control, 'r', encoding='utf-8') as fd: |
| 266 |
with warnings.catch_warnings(): # debian/deb822.py:982: UserWarning: cannot parse package relationship "${python3:Depends}", returning it raw |
| 267 |
for pkg in Packages.iter_paragraphs(fd): |
| 268 |
if pkg.get('Package') == package: |
| 269 |
provides = [p[0]['name'] for p in pkg.relations['provides']] |
| 270 |
break |
| 271 |
|
| 257 |
with open(file_umc_module, 'rb') as fd: |
272 |
with open(file_umc_module, 'rb') as fd: |
| 258 |
for item in Deb822.iter_paragraphs(fd): |
273 |
for item in Deb822.iter_paragraphs(fd): |
| 259 |
item = dict((k, [v]) for k, v in item.iteritems()) # simulate dh_ucs.parseRfc822 behaviour |
274 |
item = dict((k, [v]) for k, v in item.iteritems()) # simulate dh_ucs.parseRfc822 behaviour |
|
Lines 265-270
def read_modules(package, core=False):
Link Here
|
| 265 |
|
280 |
|
| 266 |
# single values |
281 |
# single values |
| 267 |
item['package'] = package |
282 |
item['package'] = package |
|
|
283 |
item['provides'] = provides |
| 268 |
module = UMC_Module(item) |
284 |
module = UMC_Module(item) |
| 269 |
if core: |
285 |
if core: |
| 270 |
if module.module_name != 'umc-core' or not module.xml_categories: |
286 |
if module.module_name != 'umc-core' or not module.xml_categories: |