Completed
Branch docs (a64d16)
by Kyle
01:29
created

_import_library_functions()   B

Complexity

Conditions 7

Size

Total Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 1 Features 0
Metric Value
cc 7
c 3
b 1
f 0
dl 0
loc 15
rs 7.3333
1
"""This module handles loading of the libtcod cffi API.
2
"""
3
from __future__ import absolute_import as _
4
5
import sys as _sys
6
import os as _os
7
8
import platform as _platform
9
10
from tcod import __path__
11
12
# add Windows dll's to PATH
13
if _sys.platform == 'win32':
14
    _bits, _linkage = _platform.architecture()
15
    _os.environ['PATH'] += (';' +
16
        _os.path.join(__path__[0], 'x86/' if _bits == '32bit' else 'x64'))
17
18
from tcod._libtcod import lib, ffi
0 ignored issues
show
Bug introduced by
The name _libtcod does not seem to exist in module tcod.
Loading history...
Configuration introduced by
The import tcod._libtcod could not be resolved.

This can be caused by one of the following:

1. Missing Dependencies

This error could indicate a configuration issue of Pylint. Make sure that your libraries are available by adding the necessary commands.

# .scrutinizer.yml
before_commands:
    - sudo pip install abc # Python2
    - sudo pip3 install abc # Python3
Tip: We are currently not using virtualenv to run pylint, when installing your modules make sure to use the command for the correct version.

2. Missing __init__.py files

This error could also result from missing __init__.py files in your module folders. Make sure that you place one file in each sub-folder.

Loading history...
19
20
def _import_library_functions(lib):
0 ignored issues
show
Coding Style introduced by
This function should have a docstring.

The coding style of this project requires that you add a docstring to this code element. Below, you find an example for methods:

class SomeClass:
    def some_method(self):
        """Do x and return foo."""

If you would like to know more about docstrings, we recommend to read PEP-257: Docstring Conventions.

Loading history...
Comprehensibility Bug introduced by
lib is re-defining a name which is already available in the outer-scope (previously defined on line 18).

It is generally a bad practice to shadow variables from the outer-scope. In most cases, this is done unintentionally and might lead to unexpected behavior:

param = 5

class Foo:
    def __init__(self, param):   # "param" would be flagged here
        self.param = param
Loading history...
21
    # imports libtcod namespace into thie module
22
    # does not override existing names
23
    g = globals()
24
    for name in dir(lib):
25
        if name[:5] == 'TCOD_':
26
            if (isinstance(getattr(lib, name), ffi.CData) and
27
                ffi.typeof(getattr(lib, name)) == ffi.typeof('TCOD_color_t')):
28
                g[name[5:]] = _FrozenColor.from_cdata(getattr(lib, name))
29
            elif name.isupper():
30
                g[name[5:]] = getattr(lib, name) # const names
31
            #else:
32
            #    g[name[5:]] = getattr(lib, name) # function names
33
        elif name[:6] == 'TCODK_': # key name
34
            g['KEY_' + name[6:]] = getattr(lib, name)
35
36
NOISE_DEFAULT_HURST = 0.5
37
NOISE_DEFAULT_LACUNARITY = 2.0
38
39
def FOV_PERMISSIVE(p) :
0 ignored issues
show
Coding Style introduced by
No space allowed before :
def FOV_PERMISSIVE(p) :
^
Loading history...
Coding Style introduced by
This function should have a docstring.

The coding style of this project requires that you add a docstring to this code element. Below, you find an example for methods:

class SomeClass:
    def some_method(self):
        """Do x and return foo."""

If you would like to know more about docstrings, we recommend to read PEP-257: Docstring Conventions.

Loading history...
40
    return FOV_PERMISSIVE_0+p
0 ignored issues
show
Comprehensibility Best Practice introduced by
Undefined variable 'FOV_PERMISSIVE_0'
Loading history...
41
42
def BKGND_ALPHA(a):
0 ignored issues
show
Coding Style introduced by
This function should have a docstring.

The coding style of this project requires that you add a docstring to this code element. Below, you find an example for methods:

class SomeClass:
    def some_method(self):
        """Do x and return foo."""

If you would like to know more about docstrings, we recommend to read PEP-257: Docstring Conventions.

Loading history...
43
    return BKGND_ALPH | (int(a * 255) << 8)
0 ignored issues
show
Comprehensibility Best Practice introduced by
Undefined variable 'BKGND_ALPH'
Loading history...
44
45
def BKGND_ADDALPHA(a):
0 ignored issues
show
Coding Style introduced by
This function should have a docstring.

The coding style of this project requires that you add a docstring to this code element. Below, you find an example for methods:

class SomeClass:
    def some_method(self):
        """Do x and return foo."""

If you would like to know more about docstrings, we recommend to read PEP-257: Docstring Conventions.

Loading history...
46
    return BKGND_ADDA | (int(a * 255) << 8)
0 ignored issues
show
Comprehensibility Best Practice introduced by
Undefined variable 'BKGND_ADDA'
Loading history...
47
48
from tcod.tcod import FrozenColor as _FrozenColor
49
50
_import_library_functions(lib)
51
52
__all__ = [_name for _name in list(globals()) if _name[0] != '_']
53