• Как записать Словарь в CSV по СТОЛБЦАМ в Python?

    @Speakermen
    Максим Припадчев, интересно в pandas можно несколько csv объединять в один набор данных(словарь список)? Для дальнейшего анализа
  • Как ecatalog или аналоги получают данные api с других сайтов?

    @Speakermen Автор вопроса
    спс и потом анализируют данные типа с помощью pandas?
  • Какую литературу посоветуете по паттернам проектирования?

    @Speakermen
    black1277, Мартин Фаулер Шаблоны Корпоративных Приложений
    [FoxmindEd, Сергей Немчинский] Enterprise patterns. Advanced on-line course (2022) [RU]
    [Foxminded] GRASP and GoF Design patterns Advanced On-line Course (2020)
  • Программирование и математика тесно связаны?

    @Speakermen Автор вопроса
    Vindicar, спасибо за объяснения ну я когда кодер новичок(((
  • Программирование и математика тесно связаны?

    @Speakermen Автор вопроса
    VolgaVolga, спс немного отредактировал не знаю стоит ли убить время я в математике не силён( Ну интиресно что мне это даст
  • В чем соль рефакторинга?

    @Speakermen Автор вопроса
    GNUBack, спс хм значит это что то другое
  • В чем соль рефакторинга?

    @Speakermen Автор вопроса
    Ну сейчас популярно все о рефакторинге, архитектуре, оптимизации говорят и я решил попробовать. Думал архитектура тесно связанна с рефакторингом. Я запутался( Мне как бы чтобы код работал и всё, а про эти плюшки просто хотел узнать и попробовать и стоит ли время на это убивать в соло
  • Как в python создать interface?

    @Speakermen Автор вопроса
    Спасибо dataclasses мне понравился

    import dataclasses
    from enum import Enum
    
    """
    def calculate(x, y) -> int:
        return {"+": x + y, "-": x - y, "*": x * y, "/": x / y, "%": x % y}
    
    print(calculate(1, 2)["+"])
    print(calculate(1, 2)["-"])
    print(calculate(1, 2)["/"])
    print(calculate(1, 2)["*"])
    print(calculate(1, 2)["%"])
    """
    
    """
    @dataclasses.dataclass
    class Operands:
        x: int
        y: int
    
    
    class Operators(Enum):
        PLUS = "+"
        MINUS = "-"
        MULTIPLY = "*"
        DIVISION = "/"
        MODULO = "%"
    
    
    def calculate(operands: Operands) -> int:
        return {Operators.PLUS: adding(operands), Operators.MINUS: subtracting(operands), Operators.MULTIPLY: multiplying(operands), Operators.DIVISION: dividing(operands), Operators.MODULO: modularDivision(operands)}
    
    
    def adding(operands: Operands) -> int:
        return operands.x + operands.y
    
    
    def subtracting(operands: Operands) -> int:
        return operands.x - operands.y
    
    
    def multiplying(operands: Operands) -> int:
        return operands.x * operands.y
    
    
    def dividing(operands: Operands) -> int:
        return operands.x / operands.y
    
    
    def modularDivision(operands: Operands) -> int:
        return operands.x % operands.y
    
    
    print(calculate(Operands(x=1, y=2))[Operators.PLUS])
    print(calculate(Operands(x=1, y=2))[Operators.MINUS])
    print(calculate(Operands(x=1, y=2))[Operators.DIVISION])
    print(calculate(Operands(x=1, y=2))[Operators.MULTIPLY])
    print(calculate(Operands(x=1, y=2))[Operators.MODULO])
    """
    
    
    @dataclasses.dataclass
    class Operands:
        x: int
        y: int
    
    
    class Operators(Enum):
        PLUS = "+"
        MINUS = "-"
        MULTIPLY = "*"
        DIVISION = "/"
        MODULO = "%"
        All = "all"
    
    
    def calculate(operands: Operands) -> int:
        return {Operators.PLUS: adding(operands), Operators.MINUS: subtracting(operands), Operators.MULTIPLY: multiplying(operands), Operators.DIVISION: dividing(operands), Operators.MODULO: modularDivision(operands)}
    
    
    def adding(operands: Operands) -> int:
        return operands.x + operands.y
    
    
    def subtracting(operands: Operands) -> int:
        return operands.x - operands.y
    
    
    def multiplying(operands: Operands) -> int:
        return operands.x * operands.y
    
    
    def dividing(operands: Operands) -> int:
        return operands.x / operands.y
    
    
    def modularDivision(operands: Operands) -> int:
        return operands.x % operands.y
    
    
    def calculate(operands: Operands, operators: Operators) -> int:
        match operators:
            case operators.PLUS:
                print(adding(operands))
            case operators.MINUS:
                print(subtracting(operands))
            case operators.MULTIPLY:
                print(multiplying(operands))
            case operators.DIVISION:
                print(dividing(operands))
            case operators.MODULO:
                print(modularDivision(operands))
           case operators.All:
                print(f'Adding (+) = {adding(operands)}')
                print(f'Subtracting (-) = {subtracting(operands)}')
                print(f'Multiplying (*) = {multiplying(operands)}')
                print(f'Dividing (/) = {dividing(operands)}')
                print(f'Modular division (%) = {modularDivision(operands)}')
            case _:
                print("There is no such operator!")
    
    
    calculate(Operands(x=1, y=2), Operators.PLUS)
    calculate(Operands(x=1, y=2), Operators.MINUS)
    calculate(Operands(x=1, y=2), Operators.MULTIPLY)
    calculate(Operands(x=1, y=2), Operators.DIVISION)
    calculate(Operands(x=1, y=2), Operators.MODULO)
    calculate(Operands(x=1, y=2), Operators.All)

  • Как в python создать interface?

    @Speakermen Автор вопроса
    Vindicar, спасибо огромное Вам! Я ещё нашёл ну пока не знаю как использовать)
    interface supports Python 2.7 and Python 3.4+.
    
    To install interface you have to
    
    pip install python-interface
    Example Code:
    
    from interface import implements, Interface
    
    class MyInterface(Interface):
    
        def method1(self, x):
            pass
    
        def method2(self, x, y):
            pass
    
    
    class MyClass(implements(MyInterface)):
    
        def method1(self, x):
            return x * 2
    
        def method2(self, x, y):
            return x + y
  • Как в python создать interface?

    @Speakermen Автор вопроса
    GNUBack, что то типа этого
    interface User:
      firstName: str
    lastName: str
    age: int
    
    class User:
        def __init__(self, firstName: str, lastName: str, age: int):
            if (len(firstName) == 0 or len(lastName) == 0):
                raise Exception("The strings is empty")
    
            self.firstName = firstName
            self.lastName = lastName
            self.age = age
    
    
    def createUser(userDto: User) -> str:
        return f"{user.firstName} {user.lastName} {user.age}"
    
    
    print(createUser(User(firstName="firstName", lastName="", age=0)))
  • Как в python создать interface?

    @Speakermen Автор вопроса
    RimMirK, ну да python я только начал изучать этот швейцарский нож
  • Как в python создать interface?

    @Speakermen Автор вопроса
    GNUBack, мне нужны подсказки при добавлении юзера в параметрах функции это удобно в TS
    мне нужно типа dto Сервисный слой и контроллеры

    print(createUser(firstName="firstName", lastName="lastName", age=20))
  • Стоить ли брать 3060ti на GDDR6X памяти?

    @Speakermen
    KiGamji, майнят походу Hynix не любит высоких температур
  • Стоить ли брать 3060ti на GDDR6X памяти?

    @Speakermen
    Летом выйдет 4060) Думаю что я зря брал за 35к palit dual 3060ti oc GDDR6 на samsung
  • Почему миграции не работают Not enough non-option arguments: got 0, need at least 1?

    @Speakermen Автор вопроса
    Вроде работает
    "typeorm": "node --require ts-node/register ./node_modules/typeorm/cli.js -d ormconfig.ts",
        "migration:generate": "npm run build && npm run typeorm migration:generate ./database/migrations/%npm_config_name%",
        "migration:create": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli migration:create ./database/migrations/%npm_config_name%",
        "migration:run": "npm run build && npm run typeorm migration:run",
        "migration:show": "npm run build && npm run typeorm migration:show",
        "migration:revert": "npm run build && npm run typeorm migration:revert",
        "migration:drop": "npm run build && npm run typeorm schema:drop",
        "migration:fresh": "npm run build && npm run typeorm schema:drop && npm run typeorm migration:run"
    
    npm run migration:generate --name=table
    npm run migration:create --name=table
    npm run migration:run
    npm run migration:revert
    npm run migration:show -f
    npm run migration:drop
    npm run migration:fresh


    //ormconfig
    import { DataSource } from 'typeorm';
    
    const dataSource = new DataSource({
      type: 'mysql',
      host: 'localhost',
      port: 3306,
      username: 'root',
      password: 'root',
      database: 'app1',
      entities: ['dist/**/*.entity{.ts,.js}'],
      synchronize: false,
      migrations: ['dist/database/migrations/**/*{.ts,.js}'],
      migrationsTableName: 'migrations',
    });
    
    export default dataSource;
  • Выбор мини ПК для медиацентра?

    @Speakermen
    Бюджет какой? Сборка за 50 ₽

    Процессор Intel Core i3-12100F OEM
    [LGA 1700, 4 x 3.3 ГГц, L2 - 5 МБ, L3 - 12 МБ, 2хDDR4, DDR5-4800 МГц, TDP 89 Вт]
    8 199 ₽

    Материнская плата GIGABYTE B660M GAMING DDR4
    [LGA 1700, Intel B660, 2xDDR4-3200 МГц, 1xPCI-Ex16, 2xM.2, Micro-ATX] 7 999 ₽ или Материнская плата ASRock B660M-HDV [LGA 1700, Intel B660, 2xDDR4-3200 МГц, 1xPCI-Ex16, 2xM.2, Micro-ATX] 6 799 ₽

    Корпус PowerCase Mistral Micro Z3W Mesh LED [CMIMZW-L3] белый
    [Mini-Tower, Micro-ATX, Mini-ITX, USB 2.0 Type-A, USB 3.2 Gen1 Type-A]
    4 549 ₽

    Видеокарта Palit GeForce GTX 1650 StormX [NE51650006G1-1170F]
    [PCI-E 3.0 4 ГБ GDDR5, 128 бит, DVI-D, HDMI, GPU 1485 МГц]
    12 999 ₽ или
    Видеокарта PowerColor AMD Radeon RX 6500 XT Fighter [AXRX 6500XT 4GBD6-DH/OC]
    14 199 ₽

    Кулер для процессора ID-Cooling SE-224-XTS
    1 290 ₽

    ADATA XPG GAMMIX D20 [AX4U36008G18I-DCBK20] 16 ГБ
    [DDR4, 8 ГБx2 шт, 3600 МГц, 18-22-22]
    3 899 ₽

    500 ГБ SSD M.2 накопитель Kingston NV2 [SNV2S/500G]
    [PCI-E 4.0 x4, чтение - 3500 Мбайт/сек, запись - 2100 Мбайт/сек, 3 бит TLC, NVM Express]
    3 299 ₽

    Термопаста Arctic Cooling MX-4 (2019) [ACTCP00002B]
    899 ₽

    Блок питания MONTECH CENTURY 650 [CENTURY 650]
    [650 Вт, 80+ Gold, EPS12V, APFC, 20 + 4 pin, 4+4 pin x2 CPU, 8 SATA, 6+2 pin x4 PCI-E]
    5 899 ₽