Voor mijn openHAB systeem heb ik een python script geschreven om de vuilnisdagen op te vragen en in een ephemeris file te schrijven (vuilnis.xml).
Nu ben ik bezig met het experimenteren van Docker om mijn python script platform onafhankelijk te maken.
Echter dat valt tegen, althans ik krijg een foutmelding dit ik niet begrijp waarom ik hem krijg.
Op mijn Mac heb ik met python (3.8.3) het volgende script gemaakt:
[code]
from avri.api import Avri
client = Avri('1234AB',123)
upcoming = client.all_upcoming()
header = """<?xml version="1.0" encoding="UTF-8"?>
<tns:Configuration hierarchy="nl" description="Afvalverwerking Avri"
xmlns:tns="https://www.example.org/Holiday" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://www.example.org/Holiday /Holiday.xsd">
<tns:Holidays>"""
footer = """ </tns:Holidays>
</tns:Configuration>"""
print (header)
for garbage in upcoming:
name = garbage.name
month = garbage.day.strftime("%B")
day = garbage.day.day
if name == "PACKAGES":
name = "Plastic"
if name == "GREEN":
name = "GFT"
print (f' <tns:Fixed month="{month}" day="{day}" descriptionPropertiesKey="{name}" />')
print (footer)
[/code]
Deze werkt zowel lokaal als via een docker prima. Ik krijg de output zoals ik verwacht.
Wat ik gebruik voor docker is het voglende:
[code]docker run -it --rm -v "$PWD":/usr/src/service -w /usr/src/service python:3-slim python -m pip install avri-api && python vuilnis.py > vuilnis.xml[/code]
Nu komt het gekke, op een Rasberry Pi en een Qnapnas (had ff geen ander device om te testen), krijg ik de volgende foutmelding:
[code]
File "vuilnis.py", line 23
print (f' <tns:Fixed month="{month}" day="{day}" descriptionPropertiesKey="{name}" />')
^
SyntaxError: invalid syntax
[/code]
Waarom, wat is er mis met mijn syntax als deze wel werkt op mijn Mac (zowel native als in docker)?
Ik heb de fout zelf al gevonden.... mijn docker command
Nu ben ik bezig met het experimenteren van Docker om mijn python script platform onafhankelijk te maken.
Echter dat valt tegen, althans ik krijg een foutmelding dit ik niet begrijp waarom ik hem krijg.
Op mijn Mac heb ik met python (3.8.3) het volgende script gemaakt:
[code]
from avri.api import Avri
client = Avri('1234AB',123)
upcoming = client.all_upcoming()
header = """<?xml version="1.0" encoding="UTF-8"?>
<tns:Configuration hierarchy="nl" description="Afvalverwerking Avri"
xmlns:tns="https://www.example.org/Holiday" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://www.example.org/Holiday /Holiday.xsd">
<tns:Holidays>"""
footer = """ </tns:Holidays>
</tns:Configuration>"""
print (header)
for garbage in upcoming:
name = garbage.name
month = garbage.day.strftime("%B")
day = garbage.day.day
if name == "PACKAGES":
name = "Plastic"
if name == "GREEN":
name = "GFT"
print (f' <tns:Fixed month="{month}" day="{day}" descriptionPropertiesKey="{name}" />')
print (footer)
[/code]
Deze werkt zowel lokaal als via een docker prima. Ik krijg de output zoals ik verwacht.
Wat ik gebruik voor docker is het voglende:
[code]docker run -it --rm -v "$PWD":/usr/src/service -w /usr/src/service python:3-slim python -m pip install avri-api && python vuilnis.py > vuilnis.xml[/code]
Nu komt het gekke, op een Rasberry Pi en een Qnapnas (had ff geen ander device om te testen), krijg ik de volgende foutmelding:
[code]
File "vuilnis.py", line 23
print (f' <tns:Fixed month="{month}" day="{day}" descriptionPropertiesKey="{name}" />')
^
SyntaxError: invalid syntax
[/code]
Waarom, wat is er mis met mijn syntax als deze wel werkt op mijn Mac (zowel native als in docker)?

Ik heb de fout zelf al gevonden.... mijn docker command
code:
moet zijn 1
| python -m pip install avri-api && python vuilnis.py > vuilnis.xml |
code:
1
| bash -c "python -m pip install avri-api && python vuilnis.py > vuilnis.xml" |

[Voor 5% gewijzigd door ljsquare op 14-02-2021 14:54. Reden: versie python Mac erbij gezet]
Laurens-Jan Merkx