Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions bin/check-rendered
Original file line number Diff line number Diff line change
Expand Up @@ -806,6 +806,60 @@ def scan(build, site_host):
return pages, findings, suppressed, exempt, errors, canary_values


# ---------------------------------------------------------------------------
# Heading order
# ---------------------------------------------------------------------------

# The frozen copies under static/archives/ are served as they are and are not
# ours to restructure, so their outline is not checked. Everything else is.
HEADING_EXEMPT = ("archives/",)

HEADING = re.compile(r"<h([1-6])\b", re.I)
# The modal of a person card holds its own h3 and h4, a heading tree of its
# own inside a dialog that is closed until a reader opens it. It is not part
# of the outline of the page around it.
MODAL = re.compile(r'<div class="?modal fade.*?</div></div></div></div>', re.S)
MAIN = re.compile(r"<main\b[^>]*>(.*)</main>", re.S)


def check_headings(build, pages):
"""Return the pages whose headings skip a level, with the jump.

A heading level is the outline. A reader who moves by heading, which is
how a screen reader user reads a long page, uses it to tell a section
from a subsection and to get back up a level. An h4 straight under an h1
says there are two levels between them that do not exist, so there is
nothing to go back up to. The HTML validator reports it as an error.

This is in the rendered check and not in check-content because a heading
comes from three places at once: the markdown of a page, a shortcode, and
the template around both. Only the built page knows the order they ended
up in. The level of a heading, not its size: a class keeps the size, and
the whole fix for the 14 pages that failed this was to change the level
and keep the look.
"""
skipped = []
for path in pages:
page = os.path.relpath(path, build).replace(os.sep, "/")
if any(page.startswith(prefix) for prefix in HEADING_EXEMPT):
continue
try:
text = open(path, encoding="utf-8").read()
except (OSError, UnicodeDecodeError):
continue
body = MAIN.search(text)
body = body.group(1) if body else text
body = MODAL.sub("", body)
previous = 0
for match in HEADING.finditer(body):
level = int(match.group(1))
if previous and level > previous + 1:
skipped.append((page, previous, level))
break
previous = level
return skipped


def location(finding):
return "%s:%d:%d" % (finding["page"], finding["line"], finding["column"] + 1)

Expand Down Expand Up @@ -866,6 +920,17 @@ def main():

failed = False

skipped = check_headings(build, pages)
if skipped:
failed = True
print("\nFAIL %d page(s) skip a heading level:" % len(skipped))
for page, previous, level in skipped:
print(" %s h%d -> h%d" % (page, previous, level))
print("\nA heading level is the outline of the page. Change the level "
"of the heading, not its size: a Bootstrap h1 to h6 class keeps "
"the size while the element carries the right level, which is "
"what event.html does with h2 class=\"h1\".")

if findings:
failed = True
print("\nFAIL %d finding(s) not allowed:" % len(findings))
Expand Down
1 change: 0 additions & 1 deletion content/events/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,5 @@
title: "Events"
description: ""
menu: "main"
layout: "single"
weight: 4
---
4 changes: 2 additions & 2 deletions content/events/other_events/pydata_2017_barcelona.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ mainColumn: true

The [PyData 2017 - Barcelona edition](https://pydata.org/barcelona2017/) took place from May 19th to 21th at [ESADE](https://www.esade.edu/homesite/esp/esadeforum).

### Media
## Media

You can see all the [photos](https://www.flickr.com/photos/pydata/sets/72157684439580266/) and [videos](https://www.youtube.com/playlist?list=PLGVZCDnMOq0oieXy92cJBwSirA3G2MCU1) from the event.

### Slides
## Slides

This is the list of the slides talks and workshops you can find from the event:

Expand Down
4 changes: 2 additions & 2 deletions content/events/pydatabcn/pydatabcn_2023.md
Original file line number Diff line number Diff line change
Expand Up @@ -362,11 +362,11 @@ PyDataBCN is a free non-profit event and is open to everyone, regardless of thei
We look forward to seeing you at PyDataBCN and sharing our passion for Python, data science, and engineering!


#### `When and where`
### `When and where`

It is scheduled for **Saturday 10th June** in [Canòdrom - Ateneu d'Innovació Digital i Democràtica](https://g.page/Canodrom?share), from 9:00pm to 18:00pm CET, aprox.


#### `Disclaimer`
### `Disclaimer`

PyDataBCN would like to expressly clarify that it is an independent event and is not associated or affiliated with the PyData events organized by NumFOCUS. PyDataBCN operates autonomously with its own distinct goals, structure, and organization.
10 changes: 5 additions & 5 deletions content/events/pyday_bcn/pyday_bcn_2018.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@ heroBackground: /images/photos/people-pyday-2016.jpg
<p>
PyDay Barcelona 2018 is going to take place on <b>November 24th</b> at <a href="https://goo.gl/maps/Ngk6PbN3FuB2" target="_blank">PuntMultimèdia (Espanya Industrial, Sants)</a>, full of FREE workshops, talks and contests for the local Python community and an opportunity to spread the word of its existence to other people that could be interested in Python.
</p>
<h3>What is PyDay Barcelona 2018 about?</h3>
<h2 class="h3">What is PyDay Barcelona 2018 about?</h2>
<p>
PyDay Barcelona 2018 has the aim of expanding the local Python community. It will be a whole day event, consisting of different level workshops focused on people with a variety of interestss levels and interests. There will be two tracks: beginner and intermediate. Each workshop will be about 80 minutes long. There will be networking opportunities amongst attendees and the sponsoring companies: coffee breaks, open spaces, etc.
</p>
<h3>Join the event</h3>
<h2 class="h3">Join the event</h2>
<p>
<a href="https://www.eventbrite.es/e/entradas-pyday-barcelona-2018-50585714233?ref=ebtnebtckt" target="_blank"><img src="https://www.eventbrite.es/custombutton?eid=50585714233" alt="Eventbrite - PyDay Barcelona 2018" /></a>
</p>
<h3>Agenda</h3>
<h2 class="h3">Agenda</h2>
<table>
<tbody>
<tr>
Expand Down Expand Up @@ -214,10 +214,10 @@ Get the <a href="https://github.com/giffy" target="_blank">workshop materials</a
<h2>Sponsors</h2>
<p>Do you want to sponsor this event?
Contact us at <a href="mailto:pyday-bcn-2018@googlegroups.com">pyday-bcn-2018@googlegroups.com</a>.</p>
<h3>Platinum</h3>
<h2 class="h3">Platinum</h2>
<p><img src="/archives/pybcn.org/pyday-bcn-2018/kiwicom.png" style="height: 150px; margin-right: 20px;">
<img src="/archives/pybcn.org/pyday-bcn-2018/onna.png" style="height: 140px"></p>
<h3>Gold</h3>
<h2 class="h3">Gold</h2>
<p><img src="/archives/pybcn.org/pyday-bcn-2018/kernel_analytics.png" height="80" style="margin-right: 20px; height: 80px; margin-bottom: 10px;">
<img src="/archives/pybcn.org/pyday-bcn-2018/travelperk.png" style="height: 80px">
<img src="/archives/pybcn.org/pyday-bcn-2018/kschool.png" style="height: 80px; margin-right: 20px">
Expand Down
8 changes: 4 additions & 4 deletions content/events/pyday_bcn/pyday_bcn_2021.md
Original file line number Diff line number Diff line change
Expand Up @@ -402,20 +402,20 @@ We are organizing the **the fifth edition** of PyDay in Barcelona!
PyDay is an event full of FREE **python-related workshops** and activities for the Python community, organized once per year. Over the [last four editions](#previous_editions_section), PyDay has become a great opportunity to share our love for Python and engage users, companies and newcomers into it!


#### When and where
### When and where
It is scheduled for **Saturday 27th November** in [Canòdrom - Ateneu d'Innovació Digital i Democràtica](https://g.page/Canodrom?share), from 9:30pm to 19:00pm CET, aprox.



#### A full day of in-person hands-on workshops
### A full day of in-person hands-on workshops
PyDay BCN 2021 will have different **thematic tracks** --e.g. data science, web development, security-- with hands-on workshops of about 90 minutes in which participants will learn how to use different libraries, tools and techniques, fully guided by members of the community and support volunteers.


#### Participate in Kahoot and win prizes!
### Participate in Kahoot and win prizes!
We will host a Kahoot game with questions about PyBCN and Python in general, with prizes for the fastest players. Will you miss it?!


#### Covid-safe event
### Covid-safe event
We are super excited to be back to in person events, and we are working hard to make PyDay 2021 a safe encounter:
- We will ask all in-person attendees to show a vaccination certificate or have a negative covid test taken in the 24 hours previous to the event.
- We will have a reduced attendance ratio.
Expand Down
30 changes: 15 additions & 15 deletions content/events/pyday_bcn/pyday_bcn_2022.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ events:

- speaker: "Gema Parreño"
title: "Machine Learning en producción: Experimentos con versionado de datos con DVC y VSCode"
description: "El workshop utiliza herramientas OpenSource de DVC y su extension para VSCode para preparar los experimentos de Data Science para su versionado y puesta en producción. Utilizamos el IDE de VS Code y lo transformamos en una plataforma de experimentación de Machine Learning.</br></br>A través de un caso de uso real, veremos las posibilidades que ofrece el implementar practicas de Software a los proyectos de Data Science y herramientas para versionar los experimentos de Machine Learning.</br></br>Objetivo : ayudar a los data scientist a salir de los notebooks y preparar la experimentación y puesta en producción de manera un poco mas robusta ."
description: "El workshop utiliza herramientas OpenSource de DVC y su extension para VSCode para preparar los experimentos de Data Science para su versionado y puesta en producción. Utilizamos el IDE de VS Code y lo transformamos en una plataforma de experimentación de Machine Learning.<br><br>A través de un caso de uso real, veremos las posibilidades que ofrece el implementar practicas de Software a los proyectos de Data Science y herramientas para versionar los experimentos de Machine Learning.<br><br>Objetivo : ayudar a los data scientist a salir de los notebooks y preparar la experimentación y puesta en producción de manera un poco mas robusta ."
start_time_slot: 9:30
end_time_slot: 10:45
track_length: 1
Expand Down Expand Up @@ -309,27 +309,27 @@ events:
description: "
<h2>Lightning talks</h2>

<b>How to beat your friends in fantasy football</b></br>
<b>How to beat your friends in fantasy football</b><br>
<i>Alex Molas</i>
<p><q>Have you ever wondered how to win your friends in a football fantasy league? In this talk I will show how to use python to get the best performant team by using web scraping, operations research, and machine learning!</q></p>

<b>Measuring media bias</b></br>
<b>Measuring media bias</b><br>
<i>Luis Ignacio Menéndez</i>
<p><q>We'd like to talk about a research project (working progress) trying to measure media bias in Spanish TV news. For this, we employ techniques of speech recognition, speaker diarization and text analysis. This project is carried on by PhD students of the Economics department at Universitat Autònoma de Barcelona.</q></p>

<b>Astropy 5.X: astronomical tools for everybody</b></br>
<b>Astropy 5.X: astronomical tools for everybody</b><br>
<i>Francesc Vilardell Sallés</i>
<p><q>Astropy is now a mature python library with over 34.000 commits on Github and hundreds of contributors. Astropy is still little known beyond the astronomical community, but offers several powerful tools that are useful to all python developers. In this lightning talk I will present some of these tools. </q></p>

<b>Fighting climate change the Python way</b></br>
<b>Fighting climate change the Python way</b><br>
<i>Rafael Giménez</i>
<p><q>The Digital Team at Cetaqua works in bringing state of the art AI (Computer Vision, Reinforcement Learning) to one of the most crucial issues of our time: water and environmental management. The talk aims to briefly showcase how we use Python for that.</q></p>

<b>PyCamp España </b></br>
<b>PyCamp España </b><br>
<i>Johanna Sanchez</i>
<p><q>Invitación a la comunidad para participar de un evento diferente</q></p>

<b>PyLadies España y PyCon ES 2023</b></br>
<b>PyLadies España y PyCon ES 2023</b><br>
<i>Johanna Sanchez</i>
<p><q>Invitación a la comunidad para participar en conferencia y comunidades</q></p>
"
Expand Down Expand Up @@ -387,23 +387,23 @@ events:
description: "
<h2>Lightning talks</h2>

<b>Intenciones ganadoras: Cómo implementar la arquitectura de un chatbot basado en intenciones</b></br>
<b>Intenciones ganadoras: Cómo implementar la arquitectura de un chatbot basado en intenciones</b><br>
<i>Nadal Llabrés Belmar</i>
<p><q>En esta charla explicaremos los aspectos fundamentales de cómo diseñar e implementar un chatbot basado en el reconocimiento de intenciones desde el punto de vista de la ingeniería de Software. Mediante un caso de uso, exploramos cómo diseñar e implementar una arquitectura que nos permita integrar y gestionar la base de conocimiento que requiere el bot para su aprendizaje, integrar un motor de reconocimiento de intenciones que sea capaz de entender a los usuarios a partir de un entendimiento contextual de una conversación e integrar un sistema de respuestas en distintos formatos (voz, texto, imágenes, vídeos).</q></p>

<b>Satellite super-resolution and 3d scenes</b></br>
<b>Satellite super-resolution and 3d scenes</b><br>
<i>Biel Stela</i>
<p><q>Match the resolution of Landsat imagery to fine grained Sentinel using Deep Learning, then create dynamic evolving scenes with blender. </q></p>

<b>trrex: Efficient keyword extraction with regex</b></br>
<b>trrex: Efficient keyword extraction with regex</b><br>
<i>Daniel Mesejo</i>
<p><q>In this talk I’m going to introduce the trrex package, for performing efficient keyword extraction with regular expressions. Additionally I'll show how to integrate it with pandas for text cleaning, how to use it with spacy to build a gazetteer and how to perform fuzzy matching with the regex library.</q></p>

<b>Transactions</b></br>
<b>Transactions</b><br>
<i>Christian Barra</i>
<p><q>The goal of the LT is to give to the audience a brief overview about DB transactions, why there are important and how to leverage them for some specific use cases where they play a critical role.</q></p>

<b>Optimal binning using Python</b></br>
<b>Optimal binning using Python</b><br>
<i>Guillermo Navas Palencia</i>
<p><q>Presentation of the OptBinning library, a Python library to perform optimal binning and scorecard modelling. Description of main features, current roadmap and applications.</q></p>
"
Expand All @@ -418,14 +418,14 @@ We are organizing the **the sixth edition** of PyDay in Barcelona!

PyDay is an event full of FREE **python-related workshops** and activities for the Python community, organized once per year. Over the [last five editions](#previous_editions_section), PyDay has become a great opportunity to share our love for Python and engage users, companies and newcomers into it!

#### When and where
### When and where

It is scheduled for **Saturday 26th November** in [Canòdrom - Ateneu d'Innovació Digital i Democràtica](https://g.page/Canodrom?share), from 9:30pm to 19:00pm CET, aprox.

#### A full day of in-person hands-on workshops
### A full day of in-person hands-on workshops

PyDay BCN 2022 will have different **thematic tracks** --e.g. data science, web development, security-- with hands-on workshops of about 90 minutes in which participants will learn how to use different libraries, tools and techniques, fully guided by members of the community and support volunteers.

#### Participate in Kahoot and win prizes!
### Participate in Kahoot and win prizes!

We will host a Kahoot game with questions about PyBCN and Python in general, with prizes for the fastest players. Will you miss it?!
Loading
Loading