Compare commits

...

18 Commits

Author SHA1 Message Date
7fcd19c4d7
update submodule shell-things 2024-07-12 11:41:51 +03:00
139b5368e6
Gemfile{,.lock}: add other dependencies from the documentation 2024-07-12 11:41:08 +03:00
357f4847f8
Fix '@prettier/plugin-ruby' by adding Gemfile with syntax_tree 2024-07-12 11:17:41 +03:00
331434f855
.pre-commit-config.yaml: pass --exit-zero to pre-commit 2024-07-12 11:10:44 +03:00
5e92b8d998
python: low-hanging pylint fixes 2024-07-12 11:03:13 +03:00
9d2c422a63
python: fix a couple of pylint warnings 2024-07-12 10:34:18 +03:00
5674d0f641
.pre-commit-config.yaml: cleanup 2024-07-12 10:17:23 +03:00
4121f9ea30
Start using isort 2024-07-12 10:14:44 +03:00
95b7e82f86
.pre-commit-config.yaml: cleanup moving Python configuration to pyproject.toml 2024-07-12 10:04:00 +03:00
d9cd123551
python: enable black preview 2024-07-12 09:36:38 +03:00
ba3d6d3358
python/taitotalo: more descriptive names 2024-07-12 09:16:19 +03:00
19ab00d9a3
.pre-commit-config.yaml: declare types-tabulate as an additional dependency for mypy 2024-07-12 09:07:50 +03:00
2902c56a1d
.pre-commit-config.yaml: remove non-interactive which is only for install-types 2024-07-12 08:58:32 +03:00
c7ca230b82
.pre-commit-config.yaml: ignore missing imports for mypy 2024-07-12 08:56:53 +03:00
7753a12ac0
pyproject.toml: underscore, not dash 2024-07-12 08:51:36 +03:00
ce9cd7979f
update submodule shell-things 2024-07-12 08:49:41 +03:00
b6895fc699
.pre-commit-config.yaml: comment pypy 2024-07-12 08:48:58 +03:00
faf330239c
pyproject.toml: quote python-version in hopes of fixing pre-commit.ci 2024-07-12 08:44:57 +03:00
27 changed files with 179 additions and 128 deletions

View File

@ -1,22 +1,15 @@
# @format
# SPDX-FileCopyrightText: 2023 Aminda Suomalainen <suomalainen+git@mikaela.info>
# SPDX-FileCopyrightText: 2024 Aminda Suomalainen <suomalainen+git@mikaela.info>
#
# SPDX-License-Identifier: CC0-1.0
# See https://pre-commit.com for more information
# See https://pre-commit.ci for more information
ci:
# Forĝejo/Gitea mirrors will autoclose pull requests. This should decrease
# the frequency of unnecessary PRs.
# https://github.com/pre-commit-ci/issues/issues/83
autoupdate_schedule: quarterly
skip: [pnpm-install-dev, prettier, pylint]
# use pypy3 for python
default_language_version:
python: pypy3
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0
@ -36,65 +29,49 @@ repos:
- id: check-docstring-first
- id: check-json
- id: check-merge-conflict
#- id: check-toml
- id: check-toml
#- id: check-xml
- id: debug-statements
- id: mixed-line-ending
# .gitattributes is trusted to handle this
args: [--fix=no]
args: [--fix=lf]
- id: pretty-format-json
args: [--autofix, --no-ensure-ascii]
#- id: requirements-txt-fixer
- repo: https://github.com/pre-commit-ci/pre-commit-ci-config
rev: v1.6.1
hooks:
- id: check-pre-commit-ci-config
- repo: https://github.com/thlorenz/doctoc
rev: v2.2.0
hooks:
- id: doctoc
# https://github.com/Mikaela/gist/blob/master/doctoc.txt
args: [--update-only]
- repo: https://github.com/pre-commit/mirrors-mypy
rev: "v1.10.1"
hooks:
- id: mypy
args: [--install-types, --non-interactive]
- repo: https://github.com/asottile/pyupgrade
rev: v3.16.0
additional_dependencies: [types-tabulate]
- repo: https://github.com/pycqa/isort
rev: 5.13.2
hooks:
- id: pyupgrade
args:
[--py310-plus]
# - repo: https://github.com/asottile/reorder-python-imports
# rev: v3.12.0
# hooks:
#- id: reorder-python-imports
#args: [--py310-plus]
- repo: https://github.com/asottile/add-trailing-comma
rev: v3.1.0
hooks:
- id: add-trailing-comma
- id: isort
name: isort (python)
- repo: https://github.com/psf/black
rev: 24.4.2
hooks:
- id: black
#Refer to pyproject.toml
#args: ["--line-length", "79", "--target-version", "py310"]
#- id: black-jupyter
# - repo: https://github.com/scop/pre-commit-shfmt
# rev: v3.8.0-1
# hooks:
# - id: shfmt
#- id: shfmt-docker
- repo: local
hooks:
- id: pylint
name: pylint
# Use as many jobs as CPU cores, disable TODO warnings
entry: pylint -j 0 -d W0511
entry: pylint --exit-zero
verbose: true
language: system
types_or: [python, pyi]
- id: pnpm-install-dev
@ -102,7 +79,6 @@ repos:
entry: corepack pnpm install -D
language: system
always_run: true
#verbose: true
pass_filenames: false
- id: prettier
name: prettier

View File

@ -1,7 +1,6 @@
{
"bracketSameLine": true,
"endOfLine": "auto",
"insertPragma": true,
"plugins": [
"@prettier/plugin-ruby",
"prettier-plugin-sh"

1
.ruby-version Normal file
View File

@ -0,0 +1 @@
3.3.4

6
Gemfile Normal file
View File

@ -0,0 +1,6 @@
source "https://rubygems.org"
ruby file: ".ruby-version"
gem "prettier_print"
gem "syntax_tree"
gem "syntax_tree-haml"
gem "syntax_tree-rbs"

40
Gemfile.lock Normal file
View File

@ -0,0 +1,40 @@
GEM
remote: https://rubygems.org/
specs:
haml (6.3.0)
temple (>= 0.8.2)
thor
tilt
logger (1.6.0)
prettier_print (1.2.1)
rbs (3.5.2)
logger
syntax_tree (6.2.0)
prettier_print (>= 1.2.0)
syntax_tree-haml (4.0.3)
haml (>= 5.2)
prettier_print (>= 1.2.1)
syntax_tree (>= 6.0.0)
syntax_tree-rbs (1.0.0)
prettier_print
rbs
syntax_tree (>= 2.0.1)
temple (0.10.3)
thor (1.3.1)
tilt (2.4.0)
PLATFORMS
ruby
x86_64-linux
DEPENDENCIES
prettier_print
syntax_tree
syntax_tree-haml
syntax_tree-rbs
RUBY VERSION
ruby 3.3.4p94
BUNDLED WITH
2.5.11

View File

@ -1,22 +1,33 @@
# When changing this file, read also .pre-commit-config.yaml
# Black
[tool.black]
line-length = 79
target-version = ['py310']
preview = true
# Mypy
[tool.mypy]
#python-executable = 'pypy3'
python-version = 3.10
python_version = '3.10'
# Pylint
[tool.pylint.main]
py-version = "3.10"
jobs = 0
[tool.pylint.basic]
include-naming-hint = true
[tool.pylint.format]
max-line-length = 79
[tool.pylint."messages control"]
# Disables warnings about TODO
disable = ["W0511"]
#[tool.pylint.variables]
#ignored-argument-names = "_.*|^ignored_|^unused_"
# https://black.readthedocs.io/en/stable/guides/using_black_with_other_tools.html
# No need to have it uncommented since 79 is the standard.
#[tool.pylint.format]
#max-line-length = 79
# Not actually used here, see .pre-commit-config.yaml for reorder-python-imports
# that does the same thing.
#[tool.isort]
#profile = "black"
# copy-pasted comments end.
# isort
[tool.isort]
profile = "black"

View File

@ -6,7 +6,9 @@ This script generated Keyoxide hashed proofs in argon2id and bcrypt
PROOF = str(input("Enter the proof: "))
print(
"$argon2id$v=19$m=64,t=512,p=2$mDejbh8SmFFJPjbjf+u9kQ$yQpomARjYKfgEDAZ1jdgnA",
"""
$argon2id$v=19$m=64,t=512,p=2$mDejbh8SmFFJPjbjf+u9kQ$yQpomARjYKfgEDAZ1jdgnA",
""",
)

View File

@ -25,7 +25,8 @@ def check_ssid_length(given_ssid_length):
# Request input or assume "test" on empty.
GIVENSSID = str(
input(
"Please enter the SSID you are thinking of (preferably 26 chars to fit _nomap): ",
"Please enter the SSID you are thinking of (preferably 26 chars to \
fit _nomap): ",
)
or "test",
)

View File

@ -1,15 +0,0 @@
root = true
[*]
# https://peps.python.org/pep-0008/#indentation
indent_style = space
indent_size = 4
max_line_length = 79
[*.py]
profile = black
max_line_length = 79
#end_of_line = crlf
[*.md]
end_of_line = lf

View File

@ -1,3 +0,0 @@
* text=auto
# This is for doctoc should I decide to use it in the future
*.md text eol=lf

View File

@ -33,7 +33,8 @@ def arvaa_numero():
laskuri += 1
# Pyydetään käyttäjältä luku varautuen virheelliseen syötteeseen. Se on tärkeää muuttaa int:iksi tai muuten se on string!
# Pyydetään käyttäjältä luku varautuen virheelliseen syötteeseen. Se
# on tärkeää muuttaa int:iksi tai muuten se on string!
try:
arvaus = int(input("Arvaa numero? "))
# Virhesyötteen tapahtuessa
@ -54,13 +55,16 @@ def arvaa_numero():
)
break
# Muuten avustetaan käyttäjää antamalla vihje. Printistä myös poistetaan erottavat välilyönnit, jotka tehdään itse, jotta arvauksen ja pisteen väliin ei tule välilyöntejä
elif arvaus < oikeavastaus:
# Muuten avustetaan käyttäjää antamalla vihje. Printistä myös
# poistetaan erottavat välilyönnit, jotka tehdään itse, jotta
# arvauksen ja pisteen väliin ei tule välilyöntejä
if arvaus < oikeavastaus:
print("Oikea luku on suurempi kuin ", arvaus, ".", sep="")
else:
print("Oikea luku on pienempi kuin ", arvaus, ".", sep="")
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio.
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan
# pääfunktio.
if __name__ == "__main__":
main()

View File

@ -6,8 +6,8 @@ import datetime
tanaan = datetime.date.today()
vuosi = int(tanaan.year)
nimi = "Jussi"
NIMI = "Jussi"
print(vuosi)
print(vuosi == 2014)
print(vuosi is vuosi)
# print(vuosi is vuosi)

View File

@ -2,12 +2,12 @@
Sovellus tekee yksinkertaisen salasanatarkistuksen if:illä
"""
koodisana = "python"
KOODISANA = "python"
print("Tervetuloa")
syote = input("Anna salasana: ")
if syote == koodisana:
if syote == KOODISANA:
print("Matka voi alkaa")
else:
print("Yritä uudelleen")

View File

@ -1,15 +1,19 @@
"""
Sovellus kysyy käyttäjän ikää, kertoo alle 18 heidän olevan alaikäinen, 18-65 aikuinen ja yli 65 seniori.
Sovellus kysyy käyttäjän ikää, kertoo alle 18 heidän olevan alaikäinen, 18-65
aikuinen ja yli 65 seniori.
"""
# Tuo sys -kirjasto, jotta voimme poistua virhekoodiin.
import sys
# Odotetaan käyttäjän mahdollisesti pyrkivän syöttämään muutakin kuin numeroita ja varaudutaan asiaan
# Odotetaan käyttäjän mahdollisesti pyrkivän syöttämään muutakin kuin
# numeroita ja varaudutaan asiaan
try:
# Tallennetaan kokonaislukuna käyttäjältä pyydetty ikä
ika = int(input("Mikä on ikäsi? "))
# Annetaan käyttäjäystävällinen virheilmoitus ja poistutaan virhekoodilla, jos käyttäjä ei syöttänyt numeroita
# Annetaan käyttäjäystävällinen virheilmoitus ja poistutaan virhekoodilla,
# jos käyttäjä ei syöttänyt numeroita
except ValueError:
print("Syötä ikäsi numeroina!")
sys.exit(1)
@ -17,7 +21,8 @@ except ValueError:
# Aloitetaan kokeilemalla onko käyttäjä alle 18.
if ika < 18:
print("Olet alaikäinen")
# Jos käyttäjä ei ollut alaikäinen, varmistetaan onko hän 18 ja onko hän alle 65.
# Jos käyttäjä ei ollut alaikäinen, varmistetaan onko hän 18 ja onko hän
# alle 65.
elif (ika >= 18) and (ika < 65):
print("Olet aikuinen")
# Mikäli ikä on 65 tai yli, käyttäjä on seniori.

View File

@ -24,11 +24,13 @@ def main():
print("Olen", ikani, "-vuotias", nimeni)
nimi = input("Mikä sinun nimesi on?: ")
# Odotetaan käyttäjän mahdollisesti pyrkivän syöttämään muutakin kuin numeroita ja varaudutaan asiaan
# Odotetaan käyttäjän mahdollisesti pyrkivän syöttämään muutakin kuin
# numeroita ja varaudutaan asiaan
try:
# Tallennetaan kokonaislukuna käyttäjältä pyydetty ikä
ika = int(input("Entä kuinka vanha olet? "))
# Annetaan käyttäjäystävällinen virheilmoitus ja poistutaan virhekoodilla, jos käyttäjä ei syöttänyt numeroita
# Annetaan käyttäjäystävällinen virheilmoitus ja poistutaan
# virhekoodilla, jos käyttäjä ei syöttänyt numeroita
except ValueError:
print("Syötä ikäsi numeroina!")
sys.exit(1)
@ -40,7 +42,8 @@ def main():
# Aloitetaan kokeilemalla onko käyttäjä alle 18.
if ika < 18:
print("Olet alaikäinen")
# Jos käyttäjä ei ollut alaikäinen, varmistetaan onko hän 18 ja onko hän alle 65.
# Jos käyttäjä ei ollut alaikäinen, varmistetaan onko hän 18 ja onko hän
# alle 65.
elif (ika >= 18) and (ika < 65):
print("Olet täysi-ikäinen")
# Mikäli ikä on 65 tai yli, käyttäjä on seniori.
@ -51,6 +54,7 @@ def main():
print("Jokin meni pieleen. Yritä uudelleen.")
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio.
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan
# pääfunktio.
if __name__ == "__main__":
main()

View File

@ -34,13 +34,16 @@ def main():
elif tkvalinta == "paperi" and valinta == "sakset":
print("Voitit, sakset voittavat paperin")
else:
# Tästä tuli vahingossa catch-all virheellisille syötteille, enkä ole varma toteutinko kaikki skenaariot
# Tästä tuli vahingossa catch-all virheellisille syötteille, enkä ole
# varma toteutinko kaikki skenaariot
print(
"Joko tilannetta ei ole vielä toteutettu tai annoit virheellisen syötteen. Ilmoittaisitko ongelman kehittäjälle?",
"Joko tilannetta ei ole vielä toteutettu tai annoit \
virheellisen syötteen. Ilmoittaisitko ongelman kehittäjälle?"
)
print("Tietokone valitsi:", tkvalinta, "syötteesi oli", valinta)
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio.
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan
# pääfunktio.
if __name__ == "__main__":
main()

View File

@ -2,12 +2,12 @@
Sovellus tekee listasta pareja
"""
# Tuodaan paketti tabulate.
import tabulate
# Tarvitaan parien muodostamiseen
import random
# Tuodaan paketti tabulate.
import tabulate
# Määritetään pääfunktio
def main():
@ -23,7 +23,8 @@ def main():
random_names1 = random.sample(nimet, 3)
random_names2 = random.sample(nimet2, 3)
# Luo tuplen, jossa zip yhdistää random_names{1,2} vastaavan kohdan kanssa, jotka sitten laitetaan listaan.
# Luo tuplen, jossa zip yhdistää random_names{1,2} vastaavan kohdan
# kanssa, jotka sitten laitetaan listaan.
name_pairs = list(zip(random_names1, random_names2))
print(name_pairs)
@ -38,6 +39,7 @@ def main():
print(table)
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio.
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan,
# suoritetaan pääfunktio.
if __name__ == "__main__":
main()

View File

@ -13,21 +13,25 @@ def main():
Pääfunktio.
"""
# Pyydetään käyttäjältä kaksi lukua varautuen siihen, ettei käyttäjä syötä lukuja oikeassa muodossa.
# Pyydetään käyttäjältä kaksi lukua varautuen siihen, ettei käyttäjä
# syötä lukuja oikeassa muodossa.
try:
luku1 = float(input("Anna ensimmäinen luku: "))
luku2 = float(input("Anna toinen luku: "))
# Mikäli käyttäjä syöttää jotakin, mitä emme voi muuttaa float:iksi tai int:iksi, annetaan virheilmoitus ja poistutaan virhekoodiin.
# Mikäli käyttäjä syöttää jotakin, mitä emme voi muuttaa float:iksi tai
# int:iksi, annetaan virheilmoitus ja poistutaan virhekoodiin.
except ValueError:
print("Syötä luku!")
sys.exit(1)
# Tulostetaan laskutoimitukset. Käytetään int siisteyden vuoksi, vaikka uhrataan tuki desimaalien laskemiselle.
# Tulostetaan laskutoimitukset. Käytetään int siisteyden vuoksi, vaikka
# uhrataan tuki desimaalien laskemiselle.
print(int(luku1), "+", int(luku2), "=", int(luku1 + luku2))
print(int(luku1), "-", int(luku2), "=", int(luku1 - luku2))
print(int(luku1), "*", int(luku2), "=", int(luku1 * luku2))
# Varaudutaan siihen, että käyttäjä syöttää luvuksi nollan ja siinä tapauksessa kieltäydytään suorittamasta tehtävää.
# Varaudutaan siihen, että käyttäjä syöttää luvuksi nollan ja siinä
# tapauksessa kieltäydytään suorittamasta tehtävää.
if luku1 == 0 or luku2 == 0:
print("Nollalla ei voi jakaa.")
else:
@ -35,6 +39,7 @@ def main():
print(int(luku1), "/", int(luku2), "=", (luku1 / luku2))
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio.
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan
# pääfunktio.
if __name__ == "__main__":
main()

View File

@ -39,6 +39,7 @@ def main():
print("Syötä luku!")
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio.
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan,
# suoritetaan pääfunktio.
if __name__ == "__main__":
main()

View File

@ -1,2 +1,2 @@
# main8.py requires this
# muodosta-parityo-parit.py requires this
tabulate

View File

@ -1,5 +1,7 @@
"""
Tämä on ensimmäinen Taitotalossa kirjoitettu Python koodi koulutuspäivänä yksi. Se vain tulostaa asioita.
Tämä on ensimmäinen Taitotalossa kirjoitettu Python koodi koulutuspäivänä
yksi. Se vain tulostaa asioita.
"""
# Ensimmäinen kommentti
@ -8,8 +10,8 @@ print("Tervetuloa")
# toinen kommentti
print("esi" + "merkki")
luku1 = 5
luku2 = 7
LUKU1 = 5
LUKU2 = 7
summa = luku1 + luku2
print("Vastaus", summa)
SUMMA = LUKU1 + LUKU2
print("Vastaus", SUMMA)

View File

@ -29,6 +29,7 @@ def main():
print()
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio.
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan,
# suoritetaan pääfunktio.
if __name__ == "__main__":
main()

View File

@ -1,8 +1,12 @@
# Tuodaan turtle -kirjasto
import turtle
"""
Tämän skriptin olisi tarkoitus piirtää Suomen lippu turtle-kirjastolla,
mutta en koskaan tehnyt siitä valmista.
"""
# Tuodaan turtle -kirjasto
# Satunnaislukuja
import random
# import random
import turtle
# ikkkuna = turtle.Screen()
@ -49,37 +53,37 @@ turtle.showturtle()
# Piirretään suorakulmio
vaaka = 300
pysty = 200
VAAKA = 300
PYSTY = 200
#
turtle.forward(vaaka)
turtle.forward(VAAKA)
turtle.left(90)
turtle.forward(pysty)
turtle.forward(PYSTY)
#
turtle.left(90)
turtle.forward(vaaka)
turtle.forward(VAAKA)
#
turtle.left(90)
turtle.forward(pysty)
turtle.forward(PYSTY)
turtle.left(90)
# Piirretään risti
turtle.forward(vaaka / 2)
turtle.forward(VAAKA / 2)
turtle.left(90)
turtle.forward(pysty / 3)
turtle.forward(PYSTY / 3)
turtle.right(90)
turtle.forward(vaaka / 3)
turtle.forward(VAAKA / 3)
turtle.left(90)
turtle.forward(vaaka / 5)
turtle.forward(VAAKA / 5)
turtle.left(90)
turtle.forward(vaaka / 3)
turtle.forward(VAAKA / 3)
turtle.right(90)
turtle.forward(vaaka / 3)
turtle.forward(VAAKA / 3)
# turtle.forward(pysty / 3)
# turtle.forward(PYSTY / 3)
# Pidetään ikkuna auki
turtle.mainloop()

View File

@ -1,10 +1,12 @@
"""
Sovellus pyytää käyttäjältä nimen, sekä viestin ja tulostaa viestin kolmesti.
"""
# Pyydetään käyttäjältä nimi ja viesti, tallennetaan samannimisiin muuttujiin
nimi = input("Nimi: ")
viesti = input("Viesti: ")
# Tulostetaan nimi ja kolmesti viesti rivinvaihdolla. Lopuksi poistetaan rivinvaihto ja erotin tulostuksesta
# Tulostetaan nimi ja kolmesti viesti rivinvaihdolla. Lopuksi poistetaan
# rivinvaihto ja erotin tulostuksesta
print(nimi, " sanoo:\n", (viesti + "\n") * 3, end="", sep="")

@ -1 +1 @@
Subproject commit 074a2a87fb14702ed42615b1246011295ab3b53b
Subproject commit 73572f12945caee1de71f25cb400ea2764fc62b5