Repository: tobi-wan-kenobi/bumblebee-status

Issue:
Modules names with hyphens (-)
Hey, ya.

Should we rename the modules below to match the [Python Naming Conventions](https://www.python.org/dev/peps/pep-0008/#package-and-module-names)?

```sh
modules/core/layout-xkb.py
modules/contrib/layout-xkbswitch.py
modules/contrib/arch-update.py
modules/contrib/battery-upower.py
```

These modules work as expected (I think) in the status bar, but I can't import these modules into a test file using `import`.

```sh
E       import modules.contrib.arch-update
E                                  ^
E       SyntaxError: invalid syntax
```

Any ideas?

Discussion:

Patch:
diff --git a/bumblebee_status/modules/contrib/arch_update.py b/bumblebee_status/modules/contrib/arch_update.py
new file mode 120000
index 0000000..57fd99f
--- /dev/null
+++ b/bumblebee_status/modules/contrib/arch_update.py
@@ -0,0 +1,1 @@
+arch-update.py
\ No newline at end of file
diff --git a/bumblebee_status/modules/contrib/battery_upower.py b/bumblebee_status/modules/contrib/battery_upower.py
new file mode 120000
index 0000000..4a7bb68
--- /dev/null
+++ b/bumblebee_status/modules/contrib/battery_upower.py
@@ -0,0 +1,1 @@
+battery-upower.py
\ No newline at end of file
diff --git a/bumblebee_status/modules/contrib/layout_xkbswitch.py b/bumblebee_status/modules/contrib/layout_xkbswitch.py
new file mode 120000
index 0000000..e7d6b94
--- /dev/null
+++ b/bumblebee_status/modules/contrib/layout_xkbswitch.py
@@ -0,0 +1,1 @@
+layout-xkbswitch.py
\ No newline at end of file
diff --git a/bumblebee_status/modules/core/layout_xkb.py b/bumblebee_status/modules/core/layout_xkb.py
new file mode 120000
index 0000000..f2e8037
--- /dev/null
+++ b/bumblebee_status/modules/core/layout_xkb.py
@@ -0,0 +1,1 @@
+layout-xkb.py
\ No newline at end of file
diff --git a/docs/development/module.rst b/docs/development/module.rst
index 1d6e716..113a6f7 100644
--- a/docs/development/module.rst
+++ b/docs/development/module.rst
@@ -11,6 +11,7 @@ Adding a new module to ``bumblebee-status`` is straight-forward:
    ``bumblebee-status`` (i.e. a module called
    ``bumblebee_status/modules/contrib/test.py`` will be loaded using
    ``bumblebee-status -m test``)
+-  The module name must follow the `Python Naming Conventions <https://www.python.org/dev/peps/pep-0008/#package-and-module-names>`_
 -  See below for how to actually write the module
 -  Test (run ``bumblebee-status`` in the CLI)
 -  Make sure your changes don’t break anything: ``./coverage.sh``


Test patch:
diff --git a/tests/modules/contrib/test_arch-update.py b/tests/modules/contrib/test_arch-update.py
index 6a1c172..b11187b 100644
--- a/tests/modules/contrib/test_arch-update.py
+++ b/tests/modules/contrib/test_arch-update.py
@@ -3,3 +3,5 @@ import pytest
 def test_load_module():
     __import__("modules.contrib.arch-update")
 
+def test_load_symbolic_link_module():
+    __import__("modules.contrib.arch_update")
diff --git a/tests/modules/contrib/test_battery-upower.py b/tests/modules/contrib/test_battery-upower.py
index cb62a16..d129679 100644
--- a/tests/modules/contrib/test_battery-upower.py
+++ b/tests/modules/contrib/test_battery-upower.py
@@ -5,3 +5,6 @@ pytest.importorskip("dbus")
 def test_load_module():
     __import__("modules.contrib.battery-upower")
 
+def test_load_symbolic_link_module():
+    __import__("modules.contrib.battery_upower")
+
diff --git a/tests/modules/contrib/test_layout-xkbswitch.py b/tests/modules/contrib/test_layout-xkbswitch.py
index 08cfd96..b709254 100644
--- a/tests/modules/contrib/test_layout-xkbswitch.py
+++ b/tests/modules/contrib/test_layout-xkbswitch.py
@@ -3,3 +3,5 @@ import pytest
 def test_load_module():
     __import__("modules.contrib.layout-xkbswitch")
 
+def test_load_symbolic_link_module():
+    __import__("modules.contrib.layout_xkbswitch")
diff --git a/tests/modules/core/test_layout-xkb.py b/tests/modules/core/test_layout-xkb.py
index 8eacfad..852b9da 100644
--- a/tests/modules/core/test_layout-xkb.py
+++ b/tests/modules/core/test_layout-xkb.py
@@ -5,3 +5,5 @@ pytest.importorskip("xkbgroup")
 def test_load_module():
     __import__("modules.core.layout-xkb")
 
+def test_load_symbolic_link_module():
+    __import__("modules.core.layout_xkb")