Repo Health

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

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

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

  1. 44

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

    JavaScript233 дня назад0лайков
  3. 44

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

    C++183 дня назад0лайков
  5. 44

    TypeScript23 дня назад0лайков
  6. 44

    Rust41 день назад0лайков
  7. 44

    Сайт-визитка Avtoneiro - автоматизация бизнес-процессов с помощью ИИ

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

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

    Тестовый репозиторий

    HTML231 день назад0лайков
  10. 44

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

    Приспосабливаем модель kazars24 под мой почерк

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

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

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

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

    JavaScript173 дня назад0лайков
  15. 44

    TSX404 дня назад0лайков
  16. 44

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

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

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

    JavaScript113 дней назад0лайков
  19. 44

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

    HTML400 дней назад0лайков
  20. 44

    S3 testing scripts

    Python374 дня назад0лайков
  21. 44

    Python154 дня назад0лайков
  22. 44

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

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

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

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

    213 дней назад0лайков
  25. 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("Сохраните эти файлы и вставьте в курсовую работу.")

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

2 751–2 775 из 21 887

Выбрано 3 из 3