ru_python_beginners | Unsorted

Telegram-канал ru_python_beginners - Python beginners

14446

Вопросы про Python для чайников. Cпам и троллинг неприемлем. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Правила группы: https://t.me/ru_python_beginners/1649981

Subscribe to a channel

Python beginners

нейросеть бы до такой хуйни не додумалась

Читать полностью…

Python beginners

промпта не было, чудо сделано вручную

Читать полностью…

Python beginners

интересно каков был промт

Читать полностью…

Python beginners

с кодом все впорядке, он существует

Читать полностью…

Python beginners

удобно вообще круги иметь

Читать полностью…

Python beginners

потому что по факту агрегировать всё можно с тем же успехом, с которым определить в одном месте
с определением по месту та же история

Читать полностью…

Python beginners

ну это может иметь смысл рамках конкретного проекта, но надо понимать зачем именно мы хотим управлять централизованно

Читать полностью…

Python beginners

но в остальном, идея не имеет особого смысла

Читать полностью…

Python beginners

и потом задавать сабсеты локально

Читать полностью…

Python beginners

Согласен, изначально я так и хотел сделать для каждого объекта свой набор действий, но потом подумал, что, наверное, было бы хорошо реализовать подобное расширение

Читать полностью…

Python beginners

у кучи объектов просто не будет полного набора CRUD действий

Читать полностью…

Python beginners

Вообще я делаю библиотеку для управления политиками доступа с использованием моделей RBAC, ReBAC, ABAC на основе графовой БД

Если не вдаваться во все подробности задумки и архитектуры, то использование будет выглядеть примерно так

from enum import Flag, auto
from typing import Protocol


class ActionSet(Flag):
pass


# Общие действия над ресурсами
class CRUDActions(ActionSet):
READ = auto()
CREATE = auto()
UPDATE = auto()
DELETE = auto()


# Действия над конкретным ресурсом
class DocumentActions(CRUDActions):
SHARE = auto()
EXPORT = auto()


# Декларация политик
class DocumentPolicy(Policy):
roles = RolePermissions({
UserRole.VIEWER: CRUDActions.READ,
UserRole.EDITOR: CRUDActions.CREATE | CRUDActions.UPDATE | CRUDActions.DELETE,
UserRole.ADMIN: DocumentActions.SHARE | DocumentActions.EXPORT,
}, inherits=True)

@allow(DocumentActions.READ | DocumentActions.SHARE)
def can_view_or_share(self, subject): ...

@deny(DocumentActions.DELETE)
def protect_from_deletion(self, subject): ...


# Вызов где-то в интеракторе
if session.can(user, DocumentActions.READ, doc):

Если максимально кратко, то эти акшены будут использоваться для:
- Привязки ролей к наборам действий
- Фильтры на методах политик
- Проверка прав доступа в session.can(...)
- В качестве ключа для кеша скомпилированных запросов к графовой БД

Читать полностью…

Python beginners

Если можно избежать, лучше не трогать метаклассы и использовать что-нибудь попроще. Например, сделать два отдельных енама и, если надо, использовать CRUDActions | ExtendedActions.

Читать полностью…

Python beginners

Нет, конечно) Дипломная работа очень масштабная, наследуемые энамы — лишь инструмент

Читать полностью…

Python beginners

Если всё-таки хочется так сделать, я бы почитал сначала про метаклассы, __prepare__ и почитал исходники EnumType в модуле enum

Читать полностью…

Python beginners

с китайским принтом и херней по всем строчкам?

Читать полностью…

Python beginners

"напиши мне что-нибудь для троллинга питон чата"?

Читать полностью…

Python beginners

Reported Оz [6706653621] to admins.​​​

Читать полностью…

Python beginners

Помогите пж че не так с кодом


def mega_function_destroyer():
for i in 1000:
print(i.split())

value = "number" + 9999 / 0

if 5 = 10:
pass

list_obj = 500
list_obj.append("virus")

print(None[5])

if "cat" > True:
{}[["key"]] = 10

def recursive():
return recursive()

if True:
print("Where is space?")
print("I am lost")

file.close()
file.write(b"data")

1 + 1 = 3

"string_function"()

import sys
del sys.modules

class = "smart"
for = 7

x = ([]) + 5

number = 42
number.execute_order_66()

yield from None

try:
raise Exception
except:
return 1 / 0
finally:
break

global_var = x + y + z

while 2 * 2 == 5:
print(蜜蜂)

def nested(a, a, a):
return a * a

return "Goodbye World" * 3.14

mega_function_destroyer(99, "extra", True, None)

Читать полностью…

Python beginners

часто удобнее более крупные права иметь чем на каждое действие

Читать полностью…

Python beginners

вообще, определить в одном месте или в десяти это две стороны одной монеты

Читать полностью…

Python beginners

В целом библиотеки как решения? Или конкретно про действия?

Читать полностью…

Python beginners

я не понял как биндится что у "документа" только определнные действия есть

Читать полностью…

Python beginners

имело бы смысл сделать глобальный список вообще из всего, при этом конкретизированного

Читать полностью…

Python beginners

а ещё у объекта может быть несколько разных READ с разными полями

Читать полностью…

Python beginners

зачем тут вообще общие действия

Читать полностью…

Python beginners

Тогда наследование не подходит

Читать полностью…

Python beginners

А что нужно из поведения? Есть какие-то примеры использования?

Читать полностью…

Python beginners

Может, лучше будет почитать исходники пакета enum34 (который бекпорт), они короче

Читать полностью…

Python beginners

В смысле эта штука и есть задача дипломной работы? Или это нужно только в качестве инструмента для какой-то фичи?

Читать полностью…
Subscribe to a channel