Skip to content

Commit d87fb36

Browse files
committed
Remove enum34 as a dependency and use pure python
To resolve the persistent build problems using enum34 this patch removes it entirely as a dependency. Instead, vanilla python classes are used to emulate the very small enum behavior that was previously being used.
1 parent 18c5bed commit d87fb36

File tree

3 files changed

+15
-15
lines changed

3 files changed

+15
-15
lines changed

functional/lineage.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from .transformations import CACHE_T
2-
from .transformations import EXECUTION_STRATEGIES
2+
from .transformations import ExecutionStrategies
33

44

55
class Lineage(object):
@@ -46,7 +46,7 @@ def evaluate(self, sequence):
4646
last_cache_index = self.cache_scan()
4747
for transform in self.transformations[last_cache_index:]:
4848
if transform.execution_strategies is not None \
49-
and EXECUTION_STRATEGIES.PRE_COMPUTE in transform.execution_strategies:
49+
and ExecutionStrategies.PRE_COMPUTE in transform.execution_strategies:
5050
result = transform.function(list(result))
5151
else:
5252
result = transform.function(result)

functional/transformations.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
from itertools import dropwhile, takewhile, islice
66

77
import collections
8-
from enum import Enum
98
import types
109
import six
1110

@@ -17,8 +16,14 @@
1716
'Transformation', ['name', 'function', 'execution_strategies']
1817
)
1918

20-
#: List of available execution strategies
21-
EXECUTION_STRATEGIES = Enum('EXECUTION_STRATEGIES', 'PRE_COMPUTE')
19+
20+
class ExecutionStrategies(object):
21+
# pylint: disable=too-few-public-methods
22+
"""
23+
Enum like object listing the types of execution strategies
24+
"""
25+
PRE_COMPUTE = 0
26+
2227

2328
#: Cache transformation
2429
CACHE_T = Transformation('cache', None, None)
@@ -308,7 +313,7 @@ def init_t():
308313
return Transformation(
309314
'init',
310315
lambda sequence: sequence[:-1],
311-
{EXECUTION_STRATEGIES.PRE_COMPUTE}
316+
{ExecutionStrategies.PRE_COMPUTE}
312317
)
313318

314319

@@ -333,7 +338,7 @@ def inits_t(wrap):
333338
return Transformation(
334339
'inits',
335340
lambda sequence: [wrap(sequence[:i]) for i in reversed(range(len(sequence) + 1))],
336-
{EXECUTION_STRATEGIES.PRE_COMPUTE}
341+
{ExecutionStrategies.PRE_COMPUTE}
337342
)
338343

339344

@@ -346,7 +351,7 @@ def tails_t(wrap):
346351
return Transformation(
347352
'tails',
348353
lambda sequence: [wrap(sequence[i:]) for i in range(len(sequence) + 1)],
349-
{EXECUTION_STRATEGIES.PRE_COMPUTE}
354+
{ExecutionStrategies.PRE_COMPUTE}
350355
)
351356

352357

@@ -495,7 +500,7 @@ def grouped_t(wrap, size):
495500
return Transformation(
496501
'grouped({0})'.format(size),
497502
partial(grouped_impl, wrap, size),
498-
{EXECUTION_STRATEGIES.PRE_COMPUTE}
503+
{ExecutionStrategies.PRE_COMPUTE}
499504
)
500505

501506

setup.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,11 @@
11
from setuptools import setup, find_packages
2-
import sys
32

43
try:
54
import pypandoc
65
long_description = pypandoc.convert('README.md', 'rst')
76
except (IOError, ImportError):
87
long_description = open('README.md').read()
98

10-
requirements = ['future', 'six']
11-
if not (sys.version_info.major == 3 and sys.version_info.minor >= 4):
12-
requirements.append('enum34')
13-
149
setup(
1510
name='ScalaFunctional',
1611
description='Package for creating data pipelines, LINQ, and chain functional programming',
@@ -24,7 +19,7 @@
2419
keywords='functional LINQ pipeline data collection rdd scala',
2520
packages=find_packages(exclude=['contrib', 'docs', 'tests*', 'test']),
2621
version='0.4.0',
27-
install_requires=requirements,
22+
install_requires=['future', 'six'],
2823
classifiers=[
2924
'Development Status :: 4 - Beta',
3025
'Intended Audience :: Developers',

0 commit comments

Comments
 (0)