не совсем понятен твой вопрос
предполагаю что global использован неправильно
в питоне имя объявляется в момент присваивания
global unavailable_timeslots - указание на то что unavailable_timeslotsнадо искать в глобальной области, но так он и так там . т.е. global ты используешь непрравильно
если внутри функции ты обращаешься (получаешь значение) к переменной то питон ее ищет во всех областях . - и у темя найдет только в глобальной
если внутри функции ты
присваиваешь значение - вот тогда будет играть роль global
вот посмотри пример:
a = 0
b = 1
def x():
... global b
... print(a)
... print(b)
... a = 22
... b = 33
... print(a)
... print(b)
...
x()
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "<input>", line 3, in x
UnboundLocalError: local variable 'a' referenced before assignment
def y():
... global b
... print(a)
... print(b)
... b = 33
... print(a)
... print(b)
...
y()
0
1
0
33
x()
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "<input>", line 3, in x
UnboundLocalError: local variable 'a' referenced before assignment
def z():
... global b
... a = 7
... print(a)
... print(b)
... a = 22
... b = 33
... print(a)
... print(b)
...
z()
7
33
22
33
print(a)
0
print(b)
33
y() и z() без проблем отрабатываются, в то время как x() вылетает с ошибкой "UnboundLocalError: local variable 'a' referenced before assignment"
если непонятно - есть функция id()
def q():
... global a
... a = 1
... print(1, id(a), a)
... def w():
... a = 2
... print(2, id(a), a)
... print(3, id(a), a)
... w()
... print(4, id(a), a)
... a = 3
... print(5, id(a), a)
5 140703280161488 3
q()
1 140703280161424 1
3 140703280161424 1
2 140703280161456 2
4 140703280161424 1
print(5, id(a), a)
5 140703280161424 1