import asyncio
import time
from datetime import datetime
from dataclasses import dataclass
@dataclass
class State:
value: int
async def delayer(interval: float):
while True:
now = time.time()
delay = interval - (now % interval)
yield await asyncio.sleep(delay)
await asyncio.sleep(interval / 3)
async def updater(state: State, interval: float):
async for _ in delayer(interval):
state.value += 1
print(f"{datetime.now()} updater {state.value}")
async def main():
state = State(0)
update_interval = .2
asyncio.create_task(updater(state, update_interval))
while True:
print(f"{datetime.now()} main {state.value}")
await asyncio.sleep(.1)
if __name__ == "__main__":
asyncio.run(main())
2025-05-16 03:14:49.783501 main 0
2025-05-16 03:14:49.801776 updater 1
2025-05-16 03:14:49.886596 main 1
2025-05-16 03:14:49.988087 main 1
2025-05-16 03:14:50.001721 updater 2
2025-05-16 03:14:50.090751 main 2
2025-05-16 03:14:50.191829 main 2
2025-05-16 03:14:50.200738 updater 3
2025-05-16 03:14:50.293298 main 3
2025-05-16 03:14:50.394093 main 3
2025-05-16 03:14:50.401138 updater 4
2025-05-16 03:14:50.495234 main 4
2025-05-16 03:14:50.595979 main 4
2025-05-16 03:14:50.601680 updater 5
2025-05-16 03:14:50.696821 main 5
2025-05-16 03:14:50.797915 main 5
2025-05-16 03:14:50.800797 updater 6
2025-05-16 03:14:50.899381 main 6
2025-05-16 03:14:51.000355 main 6
2025-05-16 03:14:51.000852 updater 7
2025-05-16 03:14:51.101351 main 7
2025-05-16 03:14:51.201208 updater 8
2025-05-16 03:14:51.201701 main 8
2025-05-16 03:14:51.302583 main 8
2025-05-16 03:14:51.401710 updater 9
2025-05-16 03:14:51.403641 main 9
2025-05-16 03:14:51.505192 main 9
2025-05-16 03:14:51.601012 updater 10
2025-05-16 03:14:51.606743 main 10
2025-05-16 03:14:51.707484 main 10
2025-05-16 03:14:51.801544 updater 11
2025-05-16 03:14:51.808309 main 11
2025-05-16 03:14:51.909809 main 11
2025-05-16 03:14:52.000806 updater 12
2025-05-16 03:14:52.011606 main 12
2025-05-16 03:14:52.113415 main 12
2025-05-16 03:14:52.202388 updater 13
2025-05-16 03:14:52.214291 main 13
2025-05-16 03:14:52.315195 main 13
2025-05-16 03:14:52.401254 updater 14
2025-05-16 03:14:52.416091 main 14
2025-05-16 03:14:52.517344 main 14
2025-05-16 03:14:52.601120 updater 15
2025-05-16 03:14:52.618772 main 15
2025-05-16 03:14:52.720507 main 15
2025-05-16 03:14:52.801609 updater 16
2025-05-16 03:14:52.821462 main 16
2025-05-16 03:14:52.923387 main 16
2025-05-16 03:14:53.001534 updater 17
2025-05-16 03:14:53.024396 main 17
2025-05-16 03:14:53.126190 main 17
2025-05-16 03:14:53.201231 updater 18
2025-05-16 03:14:53.227011 main 18
2025-05-16 03:14:53.329709 main 18
2025-05-16 03:14:53.402908 updater 19
2025-05-16 03:14:53.430889 main 19
2025-05-16 03:14:53.532470 main 19
2025-05-16 03:14:53.601380 updater 20
2025-05-16 03:14:53.633968 main 20
2025-05-16 03:14:53.735617 main 20
2025-05-16 03:14:53.801714 updater 21
2025-05-16 03:14:53.836654 main 21
2025-05-16 03:14:53.938479 main 21
2025-05-16 03:14:54.001544 updater 22
2025-05-16 03:14:54.039524 main 22
2025-05-16 03:14:54.140508 main 22
2025-05-16 03:14:54.201517 updater 23
2025-05-16 03:14:54.241385 main 23
let defaultTcpHandler (host : string) (port : int) : Task<TcpClient> =
task {
let tcpClient = new TcpClient()
let! _ = tcpClient.ConnectAsync(host, port) |> Async.AwaitTask
return tcpClient
}
client.TcpHandler <- Client.TcpFactory(defaultTcpHandler)
<?php
$loader = require_once __DIR__ . '/../vendor/autoload.php';
$loader->getClassMap();
import yaml
from coreapi.codecs.base import BaseCodec
from coreapi.document import Document
from coreapi.exceptions import ParseError
from openapi_codec.decode import _parse_document
class SwaggerAPICodec(BaseCodec):
format = 'openapi'
media_type = 'application/openapi+yaml'
def decode(self, bytes, **options):
try:
data = yaml.safe_load(bytes)
except ValueError as exc:
raise ParseError('Malformed YAML. {}'.format(exc))
base_url = options.get('base_url')
doc = _parse_document(data, base_url)
if not isinstance(doc, Document):
raise ParseError('Top level node must be a document.')
return doc
def encode(self, document, **options):
# TODO SwaggerAPICodec.encode() freeze
raise AttributeError('.encode() method not yet developed.')
from rest_framework.views import APIView as BaseAPIView
from rest_framework.permissions import AllowAny
from rest_framework_swagger import renderers
from rest_framework.response import Response
from api.helpers.SwaggerAPICodec import SwaggerAPICodec
class ApiView(BaseAPIView):
permission_classes = [AllowAny]
renderer_classes = [
renderers.OpenAPIRenderer,
renderers.SwaggerUIRenderer,
]
def get(self, request):
codec = SwaggerAPICodec()
bytestr = open('api/swagger.yaml', 'rb').read()
schema = codec.decode(bytestr)
return Response(schema)
from django.urls import path
from .views.ApiView import ApiView
urlpatterns = [
path('swagger/', ApiView.as_view()),
# ...
]
module: {
rules: [
{
test: /\.(eot|svg|woff|woff2|ttf)$/,
use: [{
loader: 'file-loader',
options: {
name: '[name].[ext]',
outputPath: 'fonts/',
publicPath: 'static/fonts/'
}
}]
},
]
# forms.py
class EditThumbsForm(forms.ModelForm):
class Meta:
model = Thumb
fields = ('src', )
src = forms.CharField()
EditThumbsFormSet = forms.inlineformset_factory(Video, Thumb, form=EditThumbsForm, extra=0)
class EditVideosForm(forms.ModelForm):
class Meta:
model = Video
fields = ('id', 'video_id', 'title', )
id = forms.IntegerField()
video_id = forms.IntegerField()
title = forms.CharField()
class EditVideosModelFormSet(BaseModelFormSet):
def add_fields(self, form, index):
super(__class__, self).add_fields(form, index)
form.thumb_formset = EditThumbsFormSet(
instance=form.instance,
data=form.is_bound and form.data or None,
files=form.is_bound and form.files or None,
prefix='thumb-%s-%s' % (
form.prefix,
EditThumbsFormSet.get_default_prefix()
)
)
EditVideosFormSet = forms.modelformset_factory(Video, EditVideosForm, formset=EditVideosModelFormSet, extra=0)
class EditVideosView(View):
template_name = 'admin/edit_videos.html'
def get(self, request):
instance = Video.objects.all()
formset = EditVideosFormSet(queryset=instance)
return render(request, self.template_name, context={'formset': formset})
{% for form in formset %}
<li>
{{ form }}
{% if form.thumb_formset %}
{{ form.thumb_formset.management_form }}
<ul>
{% for thumb in form.thumb_formset %}
<li>
{{ thumb.src }}
</li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
fatal error: all goroutines are asleep - deadlock!
goroutine 1 [chan receive]:
main.main()
c:/Users/chapplin/go/src/example1/test.go:59 +0x3cf
goroutine 18 [chan receive]:
main.writer(0xc04202c0c0, 0xc042050070)
c:/Users/chapplin/go/src/example1/test.go:23 +0x5e
created by main.main
c:/Users/chapplin/go/src/example1/test.go:37 +0xf0
exit status 2
Для продолжения нажмите любую клавишу . . .
// <- done
func writer(result <- chan string, done chan bool) {
for line := range result {
fmt.Println(line)
}
done <- true
}
func writer(result <- chan string, done chan bool) {
for line := range result {
if (<- done) == true {
break
}
fmt.Println(line)
}
done <- true
}
package main
import "fmt"
type Parent struct {
foo int
}
type Child struct {
Parent *Parent
bar int
}
func main() {
var parent = &Parent{ foo: 12 }
var child = &Child{ Parent: *&parent, bar: 111 }
child.Parent.foo++
fmt.Println(&parent.foo, &child.Parent.foo)
fmt.Println(child.Parent.foo, parent.foo)
}
разве что мы сначала вытащим её из мапы в переменную и вызовем метод на ней