[CI] Test ruff linter
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
kleph 2024-01-04 05:32:21 +01:00
parent d300b2279c
commit 74fe3c6a58
4 changed files with 27 additions and 20 deletions

View file

@ -7,9 +7,15 @@ steps:
commands: commands:
- mdl . - mdl .
- name: python lint
image: cytopia/pylint - name: python lint with ruff
image: pipelinecomponents/ruff
commands: commands:
- apk add --no-cache py3-pip - ruff py_hypercube.py
- pip3 install -r requirements.txt
- find . -type f -name "*.py" | xargs pylint #- name: python lint
# image: cytopia/pylint
# commands:
# - apk add --no-cache py3-pip
# - pip3 install -r requirements.txt || true
# - find . -type f -name "*.py" | xargs pylint

2
.ruff.toml Normal file
View file

@ -0,0 +1,2 @@
[lint]
ignore = ["F403", "F405"]

View file

@ -1,6 +1,6 @@
# py_hypercube # py_hypercube
Conversion of my old 3D "hello world" that animates the 3D projeciton of an hypercube. Conversion of my old 3D "hello world" that animates the 3D projection of an hypercube.
With more or less parameters With more or less parameters

27
py_hypercube.py Executable file → Normal file
View file

@ -1,11 +1,10 @@
#!/usr/bin/python #!/usr/bin/python
# -*- coding: iso8859-15 -*-
""" projection variable d'un hypercube""" """ projection variable d'un hypercube"""
# pour l'interaction avec le système # pour l'interaction avec le système
# pour sqrt() et pow() # pour sqrt() et pow()
import math import math
# pour les nombres aléatoires # pour les nombres aléatoires
from random import randint from random import randint
import pygame as pg import pygame as pg
@ -13,11 +12,11 @@ from pygame.locals import *
# importe tout ce qui est contenu dans le package OpenGL # importe tout ce qui est contenu dans le package OpenGL
from OpenGL.GL import * from OpenGL.GL import *
# GLU première couche au dessus d'OpenGL # GLU première couche au dessus d'OpenGL
from OpenGL.GLU import * from OpenGL.GLU import *
# couche supérieure, ressemble à la SDL, permet la gestion simplifiée de la configuration, # couche supérieure, ressemble à la SDL, permet la gestion simplifiée de la configuration,
# des entrées (clavier souris) et des fonctions de plus haut niveau # des entrées (clavier souris) et des fonctions de plus haut niveau
from OpenGL.GLUT import * from OpenGL.GLUT import *
## ##
@ -54,7 +53,7 @@ frepere = 0
flagsAnim = [1, 1, 1, 1] flagsAnim = [1, 1, 1, 1]
fullscreen = 0 fullscreen = 0
## coordonnées ## coordonnées
# position # position
x = 0.0 x = 0.0
y = 0.0 y = 0.0
@ -63,10 +62,10 @@ z = 3.0
cx = 0.0 cx = 0.0
cy = 0.0 cy = 0.0
cz = 0.0 cz = 0.0
# variables pour l'animation sur les coordonnées de l'espace de projection # variables pour l'animation sur les coordonnées de l'espace de projection
# varAnim = [ -100, -33, 33, 100 ] # varAnim = [ -100, -33, 33, 100 ]
# variables de départ aléatoires # variables de départ aléatoires
varAnim = [randint(-100, 100), varAnim = [randint(-100, 100),
randint(-100, 100), randint(-100, 100),
randint(-100, 100), randint(-100, 100),
@ -78,7 +77,7 @@ incAnim = [1.0, 1.0, 1.0, 1.0]
# fonction d'affichage principale # fonction d'affichage principale
def draw(): def draw():
""" fonction d'affichage principale appelée par GlutMainLoop""" """ fonction d'affichage principale appelée par GlutMainLoop"""
global x, y, z global x, y, z
global cx, cy, cz global cx, cy, cz
global varAnime global varAnime
@ -86,7 +85,7 @@ def draw():
global incAnime global incAnime
global frepere global frepere
# couleur par défaut (le fond entre autre) # couleur par défaut (le fond entre autre)
glClearColor(0.0, 0.0, 0.0, 0.0) glClearColor(0.0, 0.0, 0.0, 0.0)
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT) glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)
@ -105,7 +104,7 @@ def draw():
# gestion du clavier # gestion du clavier
def keyboard(key): def keyboard(key):
""" gère les touches normales""" """ gère les touches normales"""
global frepere global frepere
global flagsAnim global flagsAnim
global fullscreen global fullscreen
@ -154,7 +153,7 @@ def draw_line(x1, y1, z1, x2, y2, z2):
def draw_repere(): def draw_repere():
""" dessine le repère orthogonal""" """ dessine le repère orthogonal"""
glBegin(GL_LINES) glBegin(GL_LINES)
glColor3f(1.0, 0.0, 0.0) glColor3f(1.0, 0.0, 0.0)
glVertex2i(0, 0) glVertex2i(0, 0)
@ -189,7 +188,7 @@ def draw_hypercube(a1, b1, c1, d1):
hz = hp[p * 4 + 2] hz = hp[p * 4 + 2]
ht = hp[p * 4 + 3] ht = hp[p * 4 + 3]
# calcul des coordonnées projetées # calcul des coordonnées projetées
X.append( ( b * (pow(b, 2) + pow(c, 2) + pow(d, 2)) + pow(a, 2) * b) * hx + (pow(-b, 2) * a - a * (pow(a, 2) + pow(c, 2) + pow(d, 2))) * hy + (d * (pow(a, 2) + pow(b, 2) + pow(d, 2)) + pow(c, 2) * d) * hz + (c * pow(d, 2) + c * (pow(a, 2) + pow(b, 2) + pow(c, 2))) * ht) X.append( ( b * (pow(b, 2) + pow(c, 2) + pow(d, 2)) + pow(a, 2) * b) * hx + (pow(-b, 2) * a - a * (pow(a, 2) + pow(c, 2) + pow(d, 2))) * hy + (d * (pow(a, 2) + pow(b, 2) + pow(d, 2)) + pow(c, 2) * d) * hz + (c * pow(d, 2) + c * (pow(a, 2) + pow(b, 2) + pow(c, 2))) * ht)
Y.append( (c * (pow(b, 2) + pow(c, 2) + pow(d, 2)) + pow(a, 2) * c) * hx + (-d * (pow(a, 2) + pow(c, 2) + pow(d, 2) ) - pow(b, 2) * d) * hy + (pow(-c, 2) * a-a*(pow(a, 2) + pow(b, 2) + pow(d, 2))) * hz + (-b * pow(d, 2) - b * (pow(a, 2) + pow(b, 2) + pow(c, 2))) * ht) Y.append( (c * (pow(b, 2) + pow(c, 2) + pow(d, 2)) + pow(a, 2) * c) * hx + (-d * (pow(a, 2) + pow(c, 2) + pow(d, 2) ) - pow(b, 2) * d) * hy + (pow(-c, 2) * a-a*(pow(a, 2) + pow(b, 2) + pow(d, 2))) * hz + (-b * pow(d, 2) - b * (pow(a, 2) + pow(b, 2) + pow(c, 2))) * ht)