Repo Health

Рейтинг здоровья открытых репозиториев

Оценка от 0 до 100 по данным SourceCraft.

4 категории из 6, пересчёт раз в сутки. Как считается

  1. 44

    Дополнение для AmmoCRM для подстановки полей в название сделки

    JavaScript176 дней назад0лайков
  2. 44

    TSX406 дней назад0лайков
  3. 44

    Minecraft бот для копания чанков 16x16. Подключается к серверу как игрок, авторизуется через AuthMe и копает чанк по команде.

    JavaScript118 дней назад0лайков
  4. 44

    C27 дней назад0лайков
  5. 44

    JavaScript116 дней назад0лайков
  6. 44

    Сервис колеса фортуны для выбора победителя среди участников

    HTML403 дня назад0лайков
  7. 44

    S3 testing scripts

    Python377 дней назад0лайков
  8. 44

    Python156 дней назад0лайков
  9. 44

    Учебный проект к модулю «Infrastructure-as-Code с OpenTofu и Proxmox». Проект создаёт полностью автоматизированную инфраструктуру Kubernetes-кластера через модульный OpenTofu: ноды, cloud-init, конфигурация ОС и сборка кластера вручную. Подходит для обучения IaC и Kubernetes-инфраструктуре. https://stepik.org/a/238385

    HCL173 дня назад0лайков
  10. 44

    Python258 дней назад0лайков
  11. 44

    Репозиторий для лабораторных ИТМО (Программирование на Python)

    216 дней назад0лайков
  12. 44

    import matplotlib.pyplot as plt import matplotlib.patches as patches from matplotlib.path import Path import numpy as np # Настройка русского шрифта (если не отображается, замените на Arial) plt.rcParams['font.family'] = 'DejaVu Sans' plt.rcParams['font.sans-serif'] = ['DejaVu Sans', 'Arial', 'Liberation Sans', 'Microsoft Sans Serif'] plt.rcParams['axes.unicode_minus'] = False # ============================================= # ЛИСТ 1. Схема генплана Калининской АЭС # ============================================= def draw_site_plan(): fig, ax = plt.subplots(figsize=(10, 8)) ax.set_xlim(0, 100) ax.set_ylim(0, 80) ax.set_title("Рисунок 1 — Схема генерального плана промплощадки Калининской АЭС (М 1:5000)", fontsize=12, fontweight='bold') ax.axis('off') # Кольцевая дорога ring = patches.Rectangle((10, 10), 80, 60, linewidth=2, edgecolor='black', facecolor='none', linestyle='-') ax.add_patch(ring) # Главный корпус main_building = patches.Rectangle((30, 30), 40, 25, linewidth=1, edgecolor='black', facecolor='lightgray') ax.add_patch(main_building) ax.text(50, 42, 'ГЛАВНЫЙ КОРПУС', ha='center', fontsize=8, fontweight='bold') ax.text(50, 38, '(реакторное и турбинное отделения)', ha='center', fontsize=7) ax.text(50, 34, 'I степень огнестойкости', ha='center', fontsize=7) # ДГС dgs = patches.Rectangle((15, 55), 12, 10, linewidth=1, edgecolor='black', facecolor='yellow') ax.add_patch(dgs) ax.text(21, 60, 'ДГС', ha='center', fontsize=8, fontweight='bold') ax.text(21, 56, '(кат. В)', ha='center', fontsize=7) # АБК abk = patches.Rectangle((75, 55), 12, 10, linewidth=1, edgecolor='black', facecolor='lightgreen') ax.add_patch(abk) ax.text(81, 60, 'АБК', ha='center', fontsize=8, fontweight='bold') ax.text(81, 56, '(Ф4.3)', ha='center', fontsize=7) # Насосная станция pump = patches.Rectangle((75, 15), 10, 8, linewidth=1, edgecolor='black', facecolor='lightblue') ax.add_patch(pump) ax.text(80, 19, 'Насосная', ha='center', fontsize=7) ax.text(80, 16, 'станция', ha='center', fontsize=7) # Маслохозяйство oil = patches.Rectangle((15, 15), 10, 8, linewidth=1, edgecolor='black', facecolor='orange') ax.add_patch(oil) ax.text(20, 19, 'Масло-', ha='center', fontsize=7) ax.text(20, 16, 'хозяйство', ha='center', fontsize=7) # Водородная станция hydrogen = patches.Rectangle((55, 10), 10, 8, linewidth=1, edgecolor='black', facecolor='red', alpha=0.7) ax.add_patch(hydrogen) ax.text(60, 14, 'Водородная', ha='center', fontsize=7, color='white') ax.text(60, 11, '(кат. А)', ha='center', fontsize=7, color='white') # Пожарные гидранты (кружки) hydrant_positions = [(20, 25), (35, 25), (50, 25), (65, 25), (80, 25), (20, 65), (35, 65), (50, 65), (65, 65), (80, 65)] for x, y in hydrant_positions: circle = patches.Circle((x, y), 1.5, linewidth=1, edgecolor='red', facecolor='red') ax.add_patch(circle) ax.text(x, y-2, 'ПГ', ha='center', fontsize=6, color='red') # Въезды ax.annotate('ВЪЕЗД №1', xy=(50, 8), ha='center', fontsize=8, fontweight='bold', arrowprops=dict(arrowstyle='->', lw=1.5)) ax.annotate('ВЪЕЗД №2', xy=(50, 72), ha='center', fontsize=8, fontweight='bold', arrowprops=dict(arrowstyle='->', lw=1.5)) # Экспликация props = dict(boxstyle='round', facecolor='white', alpha=0.8) ax.text(5, 5, 'Условные обозначения:', fontsize=8, fontweight='bold') ax.text(5, 2, '□ Серый — главный корпус', fontsize=7) ax.text(5, -1, '□ Желтый — ДГС', fontsize=7) ax.text(5, -4, '● Красный — пожарный гидрант (ПГ)', fontsize=7) ax.text(5, -7, '═══ Кольцевой проезд (6 м)', fontsize=7) plt.tight_layout() plt.savefig('list1_site_plan.png', dpi=150, bbox_inches='tight') plt.close() print("✅ Лист 1 сохранён: list1_site_plan.png") # ============================================= # ЛИСТ 2. План ДГС с эвакуационными путями # ============================================= def draw_dgs_plan(): fig, ax = plt.subplots(figsize=(10, 8)) ax.set_xlim(0, 100) ax.set_ylim(0, 80) ax.set_title("Рисунок 2 — План 1-го этажа здания ДГС с нанесением эвакуационных путей (М 1:100)", fontsize=12, fontweight='bold') ax.axis('off') # Контур здания building = patches.Rectangle((5, 5), 90, 70, linewidth=2, edgecolor='black', facecolor='none') ax.add_patch(building) # Дизельный зал diesel = patches.Rectangle((10, 40), 35, 30, linewidth=1, edgecolor='black', facecolor='lightyellow') ax.add_patch(diesel) ax.text(27, 60, 'ДИЗЕЛЬНЫЙ ЗАЛ', ha='center', fontsize=9, fontweight='bold') ax.text(27, 55, '(категория В)', ha='center', fontsize=8) # Дизеля for i, x in enumerate([15, 22, 29, 36]): dg = patches.Rectangle((x, 45), 5, 5, linewidth=1, edgecolor='black', facecolor='gray') ax.add_patch(dg) ax.text(x+2.5, 47.5, f'ДГ{i+1}', ha='center', fontsize=6, color='white') # Масляный подвал oil_basement = patches.Rectangle((55, 40), 35, 30, linewidth=1, edgecolor='black', facecolor='orange', alpha=0.5) ax.add_patch(oil_basement) ax.text(72, 60, 'МАСЛЯНЫЙ ПОДВАЛ', ha='center', fontsize=9, fontweight='bold') ax.text(72, 55, '(категория В)', ha='center', fontsize=8) # Щитовая control = patches.Rectangle((10, 10), 25, 20, linewidth=1, edgecolor='black', facecolor='lightblue') ax.add_patch(control) ax.text(22, 22, 'ЩИТОВАЯ', ha='center', fontsize=8, fontweight='bold') ax.text(22, 18, 'управления', ha='center', fontsize=7) # Мастерская workshop = patches.Rectangle((55, 10), 35, 20, linewidth=1, edgecolor='black', facecolor='lightgreen') ax.add_patch(workshop) ax.text(72, 22, 'МАСТЕРСКАЯ', ha='center', fontsize=8, fontweight='bold') # Лестничная клетка stairs = patches.Rectangle((40, 5), 20, 25, linewidth=2, edgecolor='black', facecolor='lightgray', hatch='//') ax.add_patch(stairs) ax.text(50, 22, 'ЛЕСТНИЧНАЯ КЛЕТКА', ha='center', fontsize=7, fontweight='bold') ax.text(50, 18, '(тип Н2, подпор)', ha='center', fontsize=6) # Противопожарные перегородки (красные линии) ax.plot([45, 45], [40, 70], 'r-', linewidth=3) ax.plot([45, 45], [5, 30], 'r-', linewidth=3) ax.plot([10, 55], [40, 40], 'r-', linewidth=3) ax.plot([55, 90], [40, 40], 'r-', linewidth=3) # Противопожарные двери door_positions = [(45, 55), (45, 25), (35, 40), (55, 40)] for x, y in door_positions: door = patches.Rectangle((x-2, y-2), 4, 4, linewidth=1, edgecolor='red', facecolor='red', alpha=0.7) ax.add_patch(door) # Эвакуационные стрелки (зеленые) arrows = [ ((27, 40), (27, 35), '→'), ((72, 40), (72, 35), '→'), ((22, 10), (22, 5), '↓'), ((72, 10), (72, 5), '↓'), ((50, 5), (50, 2), '↓'), ] for start, end, direction in arrows: ax.annotate('', xy=end, xytext=start, arrowprops=dict(arrowstyle='->', lw=2, color='green')) # Эвакуационные выходы exit_sign = patches.Rectangle((45, 2), 10, 3, linewidth=1, edgecolor='green', facecolor='lightgreen') ax.add_patch(exit_sign) ax.text(50, 3.5, 'ВЫХОД', ha='center', fontsize=7, fontweight='bold') # Экспликация ax.text(5, 75, 'Условные обозначения:', fontsize=8, fontweight='bold') ax.text(5, 72, '█ Красная линия — противопожарная перегородка 1-го типа (EI 45)', fontsize=6, color='red') ax.text(5, 69, '■ Красный квадрат — противопожарная дверь (EI 30)', fontsize=6, color='red') ax.text(5, 66, '→ Зеленая стрелка — направление эвакуации', fontsize=6, color='green') ax.text(5, 63, '□ Зеленый прямоугольник — эвакуационный выход', fontsize=6, color='green') plt.tight_layout() plt.savefig('list2_dgs_plan.png', dpi=150, bbox_inches='tight') plt.close() print("✅ Лист 2 сохранён: list2_dgs_plan.png") # ============================================= # ЛИСТ 3. Кабельный туннель (разрез и план) # ============================================= def draw_cable_tunnel(): fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 6)) # ---- ЛЕВАЯ ЧАСТЬ: поперечный разрез ---- ax1.set_xlim(0, 100) ax1.set_ylim(0, 80) ax1.set_title('а) Поперечный разрез кабельного туннеля (М 1:50)', fontsize=10, fontweight='bold') ax1.axis('off') # Стенки туннеля tunnel = patches.Rectangle((20, 20), 60, 50, linewidth=2, edgecolor='black', facecolor='none') ax1.add_patch(tunnel) # Стеллажи for x in [25, 75]: for y in [25, 35, 45, 55]: shelf = patches.Rectangle((x, y), 8, 3, linewidth=1, edgecolor='black', facecolor='brown') ax1.add_patch(shelf) # Кабели на стеллаже cables = patches.Rectangle((x+1, y+0.5), 6, 2, linewidth=0.5, edgecolor='black', facecolor='gray') ax1.add_patch(cables) # Противопожарная перегородка wall = patches.Rectangle((48, 20), 4, 50, linewidth=2, edgecolor='red', facecolor='red', alpha=0.5) ax1.add_patch(wall) ax1.text(50, 15, 'Противопожарная перегородка 1-го типа (EI 45)', ha='center', fontsize=7, color='red') # Дверь door = patches.Rectangle((48, 40), 4, 10, linewidth=1, edgecolor='darkred', facecolor='red', alpha=0.8) ax1.add_patch(door) ax1.text(50, 35, 'Дверь EI 30', ha='center', fontsize=6, color='darkred') # Размеры ax1.annotate('', xy=(20, 18), xytext=(80, 18), arrowprops=dict(arrowstyle='<->', lw=1)) ax1.text(50, 15, '1,8 м (ширина туннеля)', ha='center', fontsize=7) ax1.annotate('', xy=(18, 20), xytext=(18, 70), arrowprops=dict(arrowstyle='<->', lw=1)) ax1.text(15, 45, '2,2 м', ha='center', fontsize=7, rotation=90) # ---- ПРАВАЯ ЧАСТЬ: план туннеля ---- ax2.set_xlim(0, 100) ax2.set_ylim(0, 50) ax2.set_title('б) Фрагмент плана кабельного туннеля', fontsize=10, fontweight='bold') ax2.axis('off') # Туннель tunnel_plan = patches.Rectangle((5, 15), 90, 20, linewidth=2, edgecolor='black', facecolor='none') ax2.add_patch(tunnel_plan) # Перегородки через 60 м for x in [20, 45, 70]: wall_plan = patches.Rectangle((x, 15), 3, 20, linewidth=2, edgecolor='red', facecolor='red', alpha=0.5) ax2.add_patch(wall_plan) ax2.text(x+1.5, 12, f'Перегородка\n{x}м', ha='center', fontsize=6, color='red') # Двери for x in [20, 45, 70]: door_plan = patches.Rectangle((x, 22), 3, 6, linewidth=1, edgecolor='darkred', facecolor='red', alpha=0.8) ax2.add_patch(door_plan) # Подписи секций ax2.text(12, 10, 'Секция 1', ha='center', fontsize=7) ax2.text(32, 10, 'Секция 2', ha='center', fontsize=7) ax2.text(57, 10, 'Секция 3', ha='center', fontsize=7) ax2.text(82, 10, 'Секция 4', ha='center', fontsize=7) # Размер шага ax2.annotate('', xy=(20, 8), xytext=(45, 8), arrowprops=dict(arrowstyle='<->', lw=1)) ax2.text(32.5, 6, '60 м', ha='center', fontsize=7) plt.tight_layout() plt.savefig('list3_cable_tunnel.png', dpi=150, bbox_inches='tight') plt.close() print("✅ Лист 3 сохранён: list3_cable_tunnel.png") # ============================================= # ЛИСТ 4. Таблица мероприятий # ============================================= def draw_measures_table(): fig, ax = plt.subplots(figsize=(12, 8)) ax.axis('off') ax.set_title("Рисунок 4 — План-график мероприятий по устранению нарушений требований пожарной безопасности", fontsize=12, fontweight='bold') # Данные таблицы data = [ ["1", "Повреждение уплотнений на противопожарных дверях кабельных туннелей (секции 3,5,8)", "Нач. кабельного хозяйства Смирнов С.С.", "01.03.2021", ""], ["2", "Отсутствие актов скрытых работ на кабельные проходки", "Нач. ОКС Васильев В.В.", "01.03.2021", ""], ["3", "Неисправность доводчиков (2 шт.) и отсутствие уплотнения на двери ЛК реакторного отделения", "Нач. цеха эксплуатации Новиков Н.Н.", "01.02.2021", ""], ["4", "Не выполнена перекатка пожарных рукавов ВПВ машинного зала", "Нач. службы эксплуатации Михайлов М.М.", "15.12.2020", ""], ["5", "Отсутствуют копии сертификатов на противопожарные двери ДГС", "Гл. инженер Иванов И.И.", "01.02.2021", ""], ] columns = ["№ п/п", "Наименование нарушения", "Ответственный", "Срок", "Отметка о выполнении"] # Создание таблицы table = ax.table(cellText=data, colLabels=columns, loc='center', cellLoc='left') table.auto_set_font_size(False) table.set_fontsize(9) table.scale(1.2, 1.8) # Цвета for (i, j), cell in table.get_celld().items(): if i == 0: cell.set_facecolor('#40466e') cell.set_text_props(weight='bold', color='white') else: if i % 2 == 0: cell.set_facecolor('#f2f2f2') else: cell.set_facecolor('#ffffff') # Подписи ax.text(0.1, 0.15, 'Подготовил: Начальник отдела пожарной безопасности ________ Петров П.П.', fontsize=9, transform=fig.transFigure) ax.text(0.1, 0.08, 'Утверждаю: Главный инженер Калининской АЭС ________ Иванов И.И.', fontsize=9, transform=fig.transFigure) plt.tight_layout() plt.savefig('list4_measures_table.png', dpi=150, bbox_inches='tight') plt.close() print("✅ Лист 4 сохранён: list4_measures_table.png") # ============================================= # ЗАПУСК ВСЕХ ФУНКЦИЙ # ============================================= if __name__ == "__main__": print("=" * 50) print("Начинаю генерацию графической части курсовой работы...") print("=" * 50) draw_site_plan() draw_dgs_plan() draw_cable_tunnel() draw_measures_table() print("=" * 50) print("✅ Готово! Созданы файлы:") print(" - list1_site_plan.png") print(" - list2_dgs_plan.png") print(" - list3_cable_tunnel.png") print(" - list4_measures_table.png") print("=" * 50) print("Сохраните эти файлы и вставьте в курсовую работу.")

    214 дней назад0лайков
  13. 44

    Python44 дня назад0лайков
  14. 44

    Analog radio emulator

    Dart774 дня назад0лайковСравнить
  15. 44

    Sort Project for conference

    Python255 дней назад0лайков
  16. 44

    A speed test analysis software that shows your internet speed for up to 30 days

    JavaScript203 дня назад0лайков
  17. 44

    Торговый робот с дашбордом и аутентификацией

    HTML325 дней назад0лайков
  18. 44

    Мост для перессылки сообщений чатах вк-телеграм. Полезно в случае ограничений мобильной связи.

    Python221 день назад0лайков
  19. 2708–3254argenet/extruct
    44

    Extruct is a proc-macro library written in Rust that provides tools for listing named struct fields and implementing conversion from a larger struct containing fields with same names.

    Rust752 дня назад0лайков
  20. 44

    Python129 дней назад0лайков
  21. 44

    Бот для тренировки в кибербезопасности. Анализ сообщений на содержание скама.

    Python139 дней назад0лайков
  22. 44

    HTML165 дней назад0лайков
  23. 44

    Игра для котика с красной точкой

    JavaScript186 дней назад0лайков
  24. 44

    JavaScript188 дней назад0лайков
  25. 44

    TSX273 дня назад0лайков
Показать ещё 0

2 776–2 800 из 21 933

Выбрано 3 из 3