';\t\n\t\t\t\t\t\t\t\t\t\t\t\tmagazine_button_text_444984 = '';\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tmagazine_button_url_444984 = 'https://subscriptions.thenation.com/Nation_index?pk=G2A1CLT';\n\t\t\t\t\t\t\t\t\t\t\t\tmagazine_button_bg_color_444984 = '#dd3333';\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\n\t\t\t\t\t\t\n\t\t\tif( magazine_text_444984 !='' ){\t\t\t\t\n\t\t\t\tjQuery(\"#magazine_text_444984\").html(magazine_text_444984);\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( magazine_button_text_444984 !='' ){\t\t\t\t\n\t\t\t\tjQuery(\"#magazine_button_444984\").html(magazine_button_text_444984);\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( magazine_button_url_444984 !='' ){\t\t\t\t\n\t\t\t\tjQuery(\"#magazine_button_444984 a\").attr(\"href\",magazine_button_url_444984);\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( magazine_button_bg_color_444984 !='' ){\t\t\t\n\t\t\t\tjQuery(\"#magazine_button_444984 a input\").css(\"background\",magazine_button_bg_color_444984);\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t",
+ "Alano De La Rosa holds the top office in Local 90 as the secretary-treasurer and is also a member of TDU. He told me over the phone that he attributes the success of the recent organizing drive “in large part to the fact people are activated by the potential of a nationwide work stoppage. We’ve even picked up members who were longtime nonmembers.”",
+ "In 2015, it was De La Rosa who first signed up Fischer, then a teenage UPS loader making $10.50 an hour, to be in the union. It helped that Fischer, who grew up in the Des Moines area, had some familiarity with the concept. “My uncle was in unions as a firefighter and an electrician, and I know he has done well with his life because he’s in a union,” Fischer said. But despite union protection, Fischer told me that at the beginning, “pay was very low. I always had to have another job while working there.”",
+ "In February 2018, before the current contract, Fischer became a full-time driver, which meant higher pay: $18.75 an hour, he said. But the switch also had its challenges: He recalled the terror of “qualifying” when, during the first 30 days, a driver is tested on their ability to deliver a truck’s load within rigid time standards. “That was one of the most stressful things I’ve ever done,” he said. “On any given day you could be fired. It’s snowing, and I’m driving a truck, and I have to be done by five.”\t",
+ "Like any UPS driver, Fischer has a trove of stories about misadventures and warm interactions with the public. “I’ve been chased by more dogs more times than I can count,” he said. “I’ve been stuck in snow and had the whole neighborhood dig me out. I had a customer buy me a portable air conditioner thing to keep me from overheating—probably the best customer gift I’ve ever gotten in my life.”",
+ "Jody Gelner, who has been working at UPS for 35 years and became a member of TDU around two years ago, serves on the executive board of Local 90. He said that he still “gets pretty emotional” about the interactions he has had with customers.",
+ "One holiday season, early in his role as a full-time driver in the early 2000s, he had to deliver a kid-sized jeep with power wheels, “the type of toy that you give a little kid to ride around in with a battery,” he said. Gelner knew what was in the box because there was a picture on the side. ",
+ "He was delivering it to a house with a big window. “I got out the back door and grabbed this big box with the picture of the toy,” he said. “And as I’m coming up to the door, I can see the kid jumping up and down and yelling with excitement. He was maybe 5 years old. And here comes the mom saying you just ruined the surprise for my kid’s Christmas.”",
+ "“She was furious,” he remembered with a laugh. “She tore into me. Now I’ve kind of learned that if the picture is on them, you hide them a little bit.”",
+ "But Gelner said the job also has its nasty side. “For upper management, it’s all down to seconds. You have 19 seconds to stop the truck. You have 18 or 19 seconds to get a box and get out of the truck. It’s so micromanaged.”",
+ "“Back in the day, I could run like a gazelle,” Gelner, who is 60 years old, said. “But now my knees hurt. I’ve been doing it so long. It wears on you.”",
+ "UPS has multiple mechanisms to track workers’ progress throughout the day: The company knows when a worker opens their door, how long the door is open, when a package is scanned, and where a worker is driving. But it is the union’s position that workers are under no obligation to follow the company’s time parameters. “The company can have their standards of what they think we should do, but we as a union do not acknowledge their production standards,” Fischer said. “There’s nothing in our contract that says we have to work for their numbers.” ",
+ "But there is plenty in the workers’ national contract that is distasteful. The 2018 contract that UPS employees are currently working under garnered a “no” vote of 54 percent. But the union’s leadership at the time—helmed by longtime President James Hoffa, whose father, Jimmy, led the union from 1957 to 1971—invoked a constitutional loophole that says union negotiators can impose a contract if fewer than half of the membership votes, unless that vote is two-thirds “no.”",
+ "That loophole had been vociferously opposed for years by TDU and other Teamsters, and in June 2021, delegates overturned it at the union’s national convention. And then, around five months later, the opposition slate headed by now–General President Sean O’Brien and General Secretary-Treasurer Fred Zuckerman won. Alexandra Bradbury wrote in Labor Notes about the election outcome, “It’s the first time in almost a quarter-century that a coalition backed by TDU has taken the driver’s seat in the international union.”",
+ "Now, under that leadership, Teamsters across the country are looking to overturn some of that contract’s biggest disappointments. Paramount is the 22.4 position, which was created in the 2018 contract. This designation creates a second—or lower—tier of drivers, justified by the fact that these positions “may include inside jobs.” But in reality, 22.4 workers often perform tasks that are nearly identical to that of regular full-time drivers, except they work on the weekend and receive lower pay. These 22.4 workers are also excluded from the already meager protections from excessive forced overtime that exist for regular full-time drivers. (Only 25 percent of drivers per center can be 22.4s, per the contract.)",
+ "The demand to eliminate the 22.4 position has emerged as a rallying call, and O’Brien and Zuckerman have both said they are willing to strike to scrap this designation. (O’Brien split with Hoffa over the 2018 contract and has since built an alliance with TDU.)",
+ "But life isn’t easy for regular full-time drivers either. Fischer said that these workers in Local 90 are frustrated with forced overtime and the lack of paid sick days. “[Regular] full-time drivers have overtime protections against working over nine and a half hours a day more than two days in a given week,” Fischer said. “But the company can violate it—they just have to pay a penalty.”",
+ "Regular full-time drivers in Local 90 frequently work six days a week and are often forced to power through sickness, Fischer said. They don’t, after all, get paid sick days, and the state of Iowa does not have a guarantee for these either. (Some regional supplementary agreements in other locations do include paid sick days, but the central region supplement—which is the largest supplement and includes Iowa—doesn’t.) Vacation days have to be scheduled at the beginning of the year, which means that these workers have few opportunities to get an urgently needed day off. While management’s flexibility on this requirement varies from shop to shop, Fischer described local bosses as punitive: “If you were to get sick or need the day off, you end up with attendance issues.”",
+ "“It’s a little bit like the rail workers,” Fischer said. Rail workers have been vocal about brutal work conditions created by precision-scheduled railroading, in which they are denied time off to be at the bedside of dying family members, see their children born, or attend to urgent medical issues.",
+ "When asked about these conditions at Local 90, Matthew O’Connor from UPS corporate communications said, “We don’t want any of our employees to work six days in a row unless they want to.”",
+ "“In 2018, no one could have predicted the rapid increase in volume due to Covid-19 and changing customer demands for weekend service,” he continued. O’Connor stated that the 25 percent cap on 22.4 drivers has functioned to “prevent us from hiring enough Tuesday-Saturday drivers in some locations.”",
+ "But Fischer said that UPS can’t dodge responsibility. “If they didn’t want to have the six-day work week, they wouldn’t have it. They have the power to stop that immediately. It’s like driving a car and saying, ‘I don’t want to keep driving,’ but not pulling over and stopping. They’re the ones behind the wheel.”",
+ "UPS made record profits in 2022, bringing in $100 billion in revenue. But pay inequalities extend well beyond the 22.4 positions, something workers would like to rectify. The starting rate at UPS for both part-time and full-time jobs working inside—unloading, bagging, and sorting—is significantly lower than the rate for drivers. And then there is the issue of subcontracting—or, as Fischer put it, “giving away good union jobs.”",
+ "Workers want more full-time inside jobs, and they are fed up with the company’s efforts to impose monitoring systems, like cameras and sensors. This investment in surveillance is especially offensive, workers say, given the lack of measures to keep workers cool, as temperatures climb in a changing climate and, in some cases, place their lives in danger. Workers, too, are watching with concern as UPS pursues automation at some facilities.",
+ "Fischer’s mother, Adrianne Fischer, is a part-time air package driver; she picks up packages early in the morning from the airport and delivers them to customers. Her son encouraged her to get a job at UPS almost five years ago after her divorce. “I was working three jobs at the time, and had two little boys at home,” she said. “Health insurance is so expensive. He knew I needed benefits.”",
+ "She has complaints related to Article 40 of the national contract, which says that, unlike regular part-time workers, she doesn’t get extra pay if she works six days in a row when hours are beneath a certain threshold. She is also only guaranteed three hours a day. This is despite the fact that air package workers are often delivering and moving highly valuable products, or even medically urgent items, like corneas for transplant.",
+ "While the job gave her health insurance, Article 40 puts a cap on her quality of life, she said. “I’ve prepared myself financially for a potential strike. If this is what we need to do to have our voices heard, then we’ll do it.”\t",
+ "Fischer joined TDU around the forced passage of the 2018 contract. He said he remembers “being at a TDU conference in a room with people who were really pissed off. I was not totally understanding what was going on, but knowing we were getting screwed.”",
+ "Todd Hartsell, a senior steward in his building at the time, was the one who first pointed Fischer toward TDU, which was formed in 1976 to advance union democracy and root out corruption and mob influence (then an issue) from the union. Now a retired UPS worker, Hartsell has been a member of TDU for almost 40 years and was president of Local 90 in the mid-to-late ’90s. For three months, he said, he was on the national negotiating committee for the contract fight that resulted in the last nationwide UPS strike in 1997, which took place under the leadership of Ron Carey, who won the presidency with the support of TDU. The strike involved 185,000 workers and lasted for 15 days. Labor journalist Alex Press noted this year in Jacobin, “The United States has not seen a strike of that magnitude since.”",
+ "Hartsell said of Fischer, “Other people planted the seeds in me, the seeds of knowledge and information, and I shared it with him.”",
+ "During his presidential campaign, Fischer got married in September to Jacob Sales, who works as a server while going to school. They now live together in Bondurant, a suburb of Des Moines. “It’s stressful to plan a wedding and run for president at the same time,” said Fischer. “I would be doing 4 am shifts at Pepsi talking to Teamsters, then sleeping in my car for maybe an hour, then going to work all day.” Luckily, Fischer says, his now-husband did “most of the wedding planning.”",
+ "A handful of Teamster coworkers came to their wedding, and now Fischer is a union leader alongside them, at a juncture with huge implications for the labor movement. As rank-and-file reform movements win power in the United Auto Workers and rise up in the United Food and Commercial Workers, major contract battles become an opportunity to showcase a more aggressive approach that—many hope—will result in stronger contracts and internal democracy, as well as new organizing campaigns. While union enthusiasm is resurging, density is low in relative historical terms.",
+ "There are signs, meanwhile, that UPS is feeling the heat from workers. On a January 31 UPS earnings call, Amit Mehrotra, an analyst for Deutsche Bank, expressed concern about the negative press attention the contract battle is generating: “It seems like every day we wake up, there’s a new big article about it.” On that same earnings call, UPS CEO Carol Tomé sought to assure investors that UPS and Teamsters are “not far apart on the issues.”",
+ "But Local 90 members are readying themselves for a fight. De La Rosa said, “There is a lot of positive buzz. They are asking how it’s going. We connect people with the Teamsters app. We try to be at the gates as much as possible, try to be at the building leafleting. People seem thirsty for information.”",
+ "Fischer isn’t sure when he’s going to get a break from organizing, and it doesn’t seem like he wants one. The national UPS contract says top officers get an unpaid leave from UPS during their tenure (Local 90 member dues pay their salaries), and can return with all of their seniority intact once their term is finished. When asked what he does in his free time, he told me, “This is it,” gesturing with his hands toward the conversation we are having. He does enjoy bike riding, he said, and Packers football, though he acknowledged he should not admit the latter too loudly in a Chicago bar. He’s been thinking a lot, he said, about how “servers are a marginalized group of workers, and making less than minimum wage is insane.”",
+ "“Maybe when I have some time, we can stir up some trouble at Jacob’s work.”"
+ ]
+ }
+ ]
+ }
}
}
diff --git a/tests/resources/parser/test_data/us/TheNewYorker.json b/tests/resources/parser/test_data/us/TheNewYorker.json
index 16444717c..c2fa973ee 100644
--- a/tests/resources/parser/test_data/us/TheNewYorker.json
+++ b/tests/resources/parser/test_data/us/TheNewYorker.json
@@ -13,6 +13,50 @@
"the arctic",
"ice",
"climate change"
- ]
+ ],
+ "body": {
+ "summary": [],
+ "sections": [
+ {
+ "headline": [],
+ "paragraphs": [
+ "On a clear morning in late March, in rural St. Elmo, Minnesota, I followed two materials scientists, Tony Manzara and Doug Johnson, as they tromped down a wintry hill behind Manzara’s house. The temperature was in the high thirties; a foot of snow covered the ground and sparkled almost unbearably in the sunlight. Both men wore dark shades. “You don’t need a parka,” Johnson told me. “But you need sunglasses—snow blindness, you know?” At the bottom of the hill, after passing some turkey tracks, we reached a round, frozen pond, about a hundred feet across. Manzara, a gregarious man with bushy eyebrows, and Johnson, a wiry cross-country skier with a quiet voice, stepped confidently onto the ice.",
+ "Manzara and Johnson wanted me to see the place where, in a series of experiments, they had shown that it was possible to slow the pond’s yearly thaw. Starting in the winter of 2012, working with a colleague named Leslie Field, they had covered some of the ice with glass microspheres, or tiny, hollow bubbles. Through the course of several winters, they demonstrated that the coated ice melted much more slowly than bare ice. An array of scientific instruments explained why: the spheres increase the ice’s albedo, or the portion of the sun’s light that the ice bounces back toward the sky. (Bright surfaces tend to reflect light; we take advantage of albedo, which is Latin for “whiteness,” when we wear white clothes in summer.)",
+ "At the edge of the pond, Manzara and Johnson started to reminisce. Originally, they had applied glass bubbles to a few square sections of the frozen pond, expecting that the brightest ice would last longest. But they found that, beneath the pond’s frozen surface, water was still circulating, erasing any temperature differences between the test and control sections. In subsequent years, they sank walls of plastic sheeting beneath the pond’s surface, and the coated ice started to last longer. At first, Johnson manually measured the ice thickness by donning a wetsuit and snowshoes, tying a rope around his waist, and walking onto the frozen surface with a drill and a measuring rod; he was relieved when they figured out how to take sonar measurements instead. Manzara directed my gaze to two trees on opposite shores. “This is where we set up the flying albedometer,” he said. An albedometer measures reflected radiation; theirs “flew” over the lake by way of a rope strung between two pulleys. By this point, I had been staring at the ice and snow for almost an hour, and my vision started to turn purple-pink. I blinked hard as we headed inside.",
+ "Manzara, Johnson, and Field want to prove that a thin coating of reflective materials, in the right places, could help to save some of the world’s most important ice. Climate scientists report that polar ice is shrinking, thinning, and weakening year by year. Models predict that the Arctic Ocean could be ice-free in summer by the year 2035. The melting ice wouldn’t just be a victim of climate change—it would drive further warming. The physics seem almost sinister: compared with bright ice, which serves as a cool topcoat that insulates the ocean from solar radiation, a dark, ice-free ocean would absorb far more heat. All of this happens underneath the Arctic summer’s twenty-four-hour sun. But the fragility of the Arctic cuts both ways: as much as the region needs help, its ecosystems are sensitive enough that large-scale interventions could have unintended consequences.",
+ "That afternoon, Field arrived at Manzara’s house from California, where she runs a microtechnology-consulting company and teaches a Stanford course on climate change, engineering, and entrepreneurship. Like an old friend, she let herself in and called out hello. Field has let her shoulder-length hair go completely silver, “in solidarity with the Arctic,” she joked; when we sat down together, it was obvious that all three scientists relished engineering challenges, from applying the glass bubbles (shake them out of giant cannisters? spray them from a pressure pot?) to measuring their effects. They are an inventive bunch. Both Johnson and Manzara were senior scientists at 3M: Johnson, a physicist, worked on advanced materials such as a high-capacity transmission cable, to stabilize electrical grids; Manzara, an organic chemist, focussed on energetic materials, making ingredients for flares and rocket propellants. Field holds more than sixty patents; Johnson around twenty; Manzara around twelve.",
+ "Last year, Johnson, Manzara, Field, and other collaborators published a paper about their work at the test pond in Earth’s Future, a journal of the American Geophysical Union. It described how they segmented the pond, applied a thin layer of glass bubbles on one side, and set up instruments to measure water temperature, ice thickness, weather, and long-wave and short-wave radiation. Albedo measurements range from zero, for perfect absorption, to one, for mirrorlike reflection; the bubbles raised the albedo of late-winter pond ice from 0.1-0.2 to 0.3-0.4. After a February snowfall, they wrote, it was impossible to see any difference between the sections. But in March the snow thinned to reveal two distinct regions of ice, which melted at different rates as the days warmed. When the bare ice was gone, nine inches remained under the glass bubbles.",
+ "These results validated the notion that the glass bubbles could withstand harsh winter weather and extend the life of ice. And although a freshwater pond in Minnesota is not a perfect analogue for Arctic sea ice, the authors argued, glass microspheres showed potential. “Ultimately, if policy decisions were to be made that it was appropriate to apply this localized ice-preserving approach on a local or regional scale, this method of surface albedo modification may serve to leverage albedo feedback loops in a low-risk, beneficial way to preserve Arctic ice,” they wrote.",
+ "The paper imagined deploying the glass bubbles in a few strategic places. The Beaufort Gyre, for instance, north of Alaska and Canada, serves as a nursery for sea ice. “The circulation patterns there would help you spread the materials around,” Field told me. First-year ice is darker and thinner, and therefore vulnerable; the glass bubbles could help it survive and grow into thicker, brighter ice. Field also envisioned applying the bubbles in the Fram Strait, east of Greenland and west of Svalbard, which traps ice floes when it freezes over, helping them to survive longer. “There’s so much ice export there. A flow restrictor would be a good thing,” Field said.",
+ "In the race to save the cryosphere, as scientists call the world’s frozen reaches, protecting icy bodies of water will not be enough: the water locked on land, in glaciers, could devastate ecosystems and lower Earth’s albedo if it melts. And so, this winter, Johnson and Manzara constructed four “glaciers” on Manzara’s property. We went to see them with Field, stopping on the way to sample sweet sap from one of Manzara’s maple trees.",
+ "Already, through the course of the day, the snow had softened: instead of crunching across the top, we sank to our shins with each step. The glaciers sat, like ten-foot-square garden beds, behind a wire fence meant to keep out turkeys and deer. Glass bubbles have proved surprisingly effective on the flat surface of the pond, Manzara explained, but are not suited to the flowing curves of glaciers. “On a sloped surface, they tend to run downhill very quickly as soon as the top layer gets to be at all liquid,” he told me. Instead, they were testing white granules commonly used in roofing, which are heavier and irregular. But would they protect the ice as well as the spheres—and would they stay in place long enough to save glaciers?",
+ "No amount of glass spheres or roofing granules will reverse climate change. Only a rapid global shift away from fossil fuels is likely to achieve that. But in a place like the Arctic, which is warming four times faster than the rest of the planet, and where the end-of-ice tipping point hangs like the Sword of Damocles, such an intervention could offer a precious lifeline: time. What kind of progress could the world make if the emergency receded by a few years? “You only need to treat a small portion of the Arctic to get a big impact on the global climate. That’s the big picture,” Johnson said, describing his group’s modelling. “You can get twenty-five years longer to keep the ice.”",
+ "In 2006, Field went to see Al Gore’s climate-change documentary “An Inconvenient Truth.” She remembers leaving the theatre with two feelings: panic, and the need to do something. She kept thinking of an image she had once seen—a truck barrelling toward a screaming woman who’s standing in front of a child. “That’s what I felt like—like the Mack truck was coming for my kids,” Field told me. She also thought about the idea, communicated in the film, that the Arctic Ocean had enormous leverage in the climate system. “That disappearing ice, that reflectivity that we’ve had, that’s been doing us this gigantic favor of reflecting sunlight away, it’s disappearing—and that makes this positive-feedback loop,” she said. As an engineer, she knew that a positive-feedback loop, in which a change begets more of the same change, was something special: an opportunity for a small, strategic input to have a larger impact.",
+ "Field started experimenting with albedo on her front porch. She filled buckets with water and various would-be heat shields, and rigged them with inexpensive hardware-store thermometers. Her husband, a fellow-engineer, thought the tests were overly simplistic. “I’ve learned to listen to his arguments, but not to let them stop me,” Field told me. Plastics seemed unsuitable—they’re derived from petroleum, and a stint in the oil industry had convinced her that “you just have to respect the toxicity” of petrochemicals—but she tried some anyway. She tried hay and daisies. “They were both terrible,” she said. She tried cotton pads, baking soda, diatomaceous earth, searching for a material with the right properties—something reflective and nontoxic, that didn’t absorb heat, with an open texture to allow evaporative cooling. In 2008, she formed Ice911, a nonprofit, to fund her experiments.",
+ "Early in her research, Field learned that 3M was one of several companies that manufacture glass microspheres by the trillions. Microspheres make automotive parts lighter and reduce the density of wood composite, making it easier to nail; if you’ve driven in the dark, you’ve seen the unique way the material scatters light, in the reflective paint that’s used for lane lines. In November, 2010, a professional acquaintance introduced Field to Johnson, who invited her to give a talk at 3M’s Midwest headquarters, the home of Scotch Tape, Post-it, and many cleaning, building, and business supplies. On the way, she saw a rainbow and took it as an auspicious sign. During her talk on Arctic ice loss, which about twenty scientists attended, Field described a dilemma: she knew that the glass bubbles needed to be tested in the field, but she also knew that it would be difficult to get permission to conduct a scaled-up experiment. At the end of her presentation, Manzara approached her and offered a solution—they could use his pond, which is on private land.",
+ "A 3M policy allowed scientists to spend fifteen per cent of their work time on personal projects, and Johnson, Manzara, and Field soon began testing different glass bubbles on the pond. They contracted with an environmental laboratory to feed the glass bubbles to one bird species and one fish species, and the lab did not report any harmful effects. The team reasoned that the microspheres were safe because they were almost entirely silica, a mineral that is abundant in sediment, rocks, and the ocean. “It’s something we’ve evolved with,” Field argued. “If you look at your vitamins, you may find that some of them have a silica binding agent. It’s about as safe as you can get.” Microspheres also have the advantage of already existing: when tackling a problem that needs to be solved within ten or twenty years, there’s hardly time to invent and mass-produce something entirely new. “These are relatively inexpensive, and there are manufacturers,” Field told me.",
+ "In 2015, Field gave a talk at NASA’s Ames Research Center and met its associate director, Steven Zornetzer, a former neuroscientist interested in climate protection. “Leslie’s insight was that, if we can use some kind of material to really leverage the importance of ice in the Arctic during the summer, we could prevent that additional absorption of solar radiation,” he told me. Zornetzer, a hiker and environmentalist, joined the small team at Ice911 as executive director to build up the organization’s infrastructure. Covering up to a hundred thousand square kilometres of Arctic sea ice, Zornetzer told me, would cost one to two billion dollars per year; Johnson estimated that coating Himalayan glaciers would cost anywhere from one to thirteen billion dollars per year. The group knew that their approach was not a substitute for the larger undertaking of cutting climate pollution to near-zero—but, like doctors in the early days of the coronavirus pandemic, they were raiding the medicine cabinet. They wanted to find remedies that were already out there and which might buy time for new treatments to be developed.",
+ "There were plenty of reasons that this intervention might be unworkable. The microspheres might not affect Arctic sea ice the way they did a segmented pond in Minnesota. Zornetzer said that scientists still needed to study the bubbles’ impact on each part of the food chain, “from primitive organisms to larger, more predaceous ones,” to insure that they would “have no effect on species living in the Arctic water column.” Using them might be politically impossible, whether locally or internationally. But the only way to find out would be to press forward. Answers, positive or negative, were needed soon.",
+ "In 2017, after several years of experiments in Minnesota, the team flew to northern Alaska to test the microspheres on a pond at the Barrow Arctic Research Center, in Utqiagvik. (Field’s first trip to Alaska had been funded by a Silicon Valley donor who was concerned about the future of the Arctic.) The team applied the glass bubbles with a modified agricultural seeder and a snow machine. To guard against polar bears, men with rifles accompanied the group. Maddeningly, the experiment was inconclusive—the instrumentation failed when its wiring was gnawed by foxes—but the test put Ice911 into a new phase, in which the organization began to grapple with complicated questions that surround geoengineering.",
+ "Using bright materials to stay cool is intuitive enough. Drivers do it when they place foil sunshades behind the windshields of their cars. Cities such as New York and Los Angeles do it through “cool roof” programs, in which reflective coats of paint keep buildings cooler during the summer, helping to counteract the urban heat-island effect, which makes cities warmer than natural spaces. In theory, these principles could be applied more broadly. Research by Xin Xu, a materials scientist who trained at M.I.T., recently estimated that raising an area’s albedo by 0.01 could reduce its air temperature by 0.1 degrees Celsius (0.18 degrees Fahrenheit). An organization called MEER, founded by a Harvard microscope researcher, wants to combat warming by placing mirrors over land and water and pointing them skyward, to bounce back solar radiation. It’s possible that plants could be bred to have lower levels of chlorophyll and waxier surfaces, which could increase the albedo of croplands. But the idea of addressing climate change on a global scale, by intentionally intervening in the natural world—as opposed to by decreasing emissions—is deeply contentious. There are questions of safety, efficacy, and unintended consequences. Even if a technology is definitely safe, there are issues of governance and fairness: Who gets to decide to deploy it, and where?",
+ "One particularly controversial form of geoengineering is stratospheric aerosol injection—a type of solar-radiation management, or S.R.M., that would raise the entire planet’s albedo by spraying aerosolized sulfuric acid into the stratosphere, much as volcanoes do. In 2021, a Harvard group researching S.R.M. was poised to test the technology in northern Sweden, working with the country’s space agency, but protests from the Indigenous Sámi community and environmental groups shut the project down. “The way of thinking that humans are entitled to change and manipulate our surroundings has actually brought us into the climate crisis in the first place,” a leader of the Sámi Council told reporters at the time. Still, this February, a U.N. Environment Programme report argued that the impacts and risks of S.R.M. should be researched, in part, the organization’s chief scientist has said, because “these technologies are gaining traction as a possible last resort.” David Keith, who leads a new climate-systems-engineering initiative at the University of Chicago and is one of the most cited researchers of S.R.M., told me that the technology should not be used unilaterally, for example by “a toxic tech billionaire.” But he also said that universal agreement is unrealistic: “No technologies get decided by some global unanimous vote.”",
+ "Keith told me that, in his view, research into the safety and efficacy of glass microspheres is underwhelming, and that stratospheric aerosols are a more mature and impactful technology. But advocates of reflective coatings argue that their approaches would be preferable because they are localized, and might be more easily reversed. “If something unexpected were to happen in the environment as a result of our deployment, we could simply stop the deployment,” Zornetzer told me. “We can even clean it up if we had to. You can’t do that with these other methods.” Using reflective coatings on ice still amounts to actively tinkering with a natural system, but in a way that seems less totalizing than transforming the stratosphere—call it geoengineering lite. (Some proponents, including Field, prefer the term “climate restoration.”)",
+ "After the field test at Utqiagvik, the priorities of Ice911 team members began to diverge. Field wanted to conduct more field tests as soon as possible; this meant pivoting away from Arctic sea ice to glaciers, on the theory that it would be easier to secure permits and community support on land, within clear borders. Last year, she officially founded the Bright Ice Initiative, a glacier-focussed group, and Johnson and Manzara came with her. Others, including Zornetzer, thought that they had more work to do before field testing, and wanted to stay focussed on Arctic ice, which they viewed as the most important lever that a surface-albedo project could pull. They ultimately renamed Ice911 the Arctic Ice Project and partnered with SINTEF, a research organization in Norway, to complete laboratory studies into the ecological impact of glass microspheres. Only after those have concluded will testing move into the field. “We have always used the phrase ‘Do no harm,’ ” Zornetzer told me. “But there was precious little or no solid ecological or toxicology work associated with the material—certainly not in the Arctic, with the species that live in the Arctic water column.”",
+ "Many of those who oppose geoengineering argue that even discussing it generates a sort of moral hazard, by creating a false impression that technological fixes will spare us the hard work of dropping fossil fuels. Manzara, Johnson, and Field aren’t convinced by that line of thinking. “We’ve known about climate change and carbon for how long?” Manzara said. “People are using solar, using renewables, but it’s not changing fast enough. This is something you could actually do.” Other opponents point out that even a test would be far-reaching and could pose serious risks. “You’re not going to be able to see the implications of these technologies until you deploy them at scale,” Panganga Pungowiyi, an organizer at the Indigenous Environmental Network, and a Native resident of St. Lawrence Island, in Alaska, told me. “And we only have one Earth.”",
+ "The Utqiagvik test opened both organizations up to outside criticism in a new way. In 2022, a group of Native Alaskan activists, including Pungowiyi, tried to attend an Arctic Ice Project fund-raiser at a country club in California. After they paid for a V.I.P. table, their money was refunded with a note saying that the event was sold out—but some of Pungowiyi’s friends, who were white, were able to buy individual tickets later. The group demonstrated outside instead, and delivered an open letter signed by several Native Alaskan groups. It argued that the coatings might interfere with wildlife, human health, boat motors, and air traffic.",
+ "Annette Eros, who became the C.E.O. of the Arctic Ice Project several months after the fund-raiser, told me that the table had been refunded because of space limitations. Still, she said, the decision not to accommodate the group was “disappointing.” She added in an e-mail that “the actions from last year do not reflect the philosophy and strategy of current Arctic Ice Project leadership.” Eros also said that “Rule 1” of the project is that it will collaborate with Indigenous communities well ahead of field testing. “We need to make sure that we’re respecting and learning from each other and have open lines of communication,” she said. But the Arctic Ice Project has not reached out to the groups involved in the protest.",
+ "Field told me that she had got permission for the Utqiagvik field test from the local city government and the Native corporation, and thought those agreements sufficed. “That is not the same as getting consent,” Pungowiyi told me. When we spoke, Pungowiyi focussed on the matter of self-determination. “Shouldn’t we be able to say no? Shouldn’t we have the agency over our bodies, our lands, our waters, our animals that we’ve been in relationship with for thousands of years?” she asked. In her view, scientific projects have a long history of treating Indigenous people and lands “as a stepping stool and a dumping ground.”",
+ "Geoengineering is powerful for the same reason that it is a lightning rod: it contemplates profound changes to global systems. Of course, humans have already disrupted those systems in dangerous ways. Action is risky, but so is inaction; geoengineering highlights the tension between speed and safety. Geoengineering also raises the question of whose safety counts. Warming is a collective problem, but many communities that have emitted less climate pollution—island nations, Indigenous communities, much of the Global South—are already suffering the worst of its effects. Some will suffer from climate solutions, too.",
+ "Well-meaning people may be tempted to view the climate crisis as a version of the trolley problem, Pungowiyi said—a philosophical conundrum in which a trolley is about to strike five people and an onlooker has to decide whether to divert it onto a different track, where it will strike only one. The trolley problem describes a single decision-maker with complete information, but the climate crisis involves many decision-makers who must account for uncertainty—and the will of the people on the tracks. “If you have a technology that you believe is good for the whole world, then it’s O.K. to sacrifice the Arctic because it’s the most strategic location, and it’s wrong for Indigenous people to say no,” Pungowiyi said, describing a line of reasoning that she considers deeply harmful.",
+ "The more time I spent with the Bright Ice team, the more conflicted I felt about their technology. Field told me that she’d spoken at an online event attended by the former President of Iceland Ólafur Grímsson, and he’d remarked that, if it is possible to preserve valuable ice, “it would be a gift of fortune, a gift from God.” (Grímsson did not reply to a request for comment.) If we have the opportunity to preserve an irreplaceable part of the planet’s climate system, don’t we have the responsibility to do so? And yet spreading an artificial substance in a delicate ecosystem, even in the name of environmentalism, is troubling to the part of us that wants nature to remain as it was. I expected to be amazed by the glass bubbles, but when I saw them for the first time, in Manzara’s workshop—almost weightless and so reflective they seemed to glow—I was unsettled. What would they do to the places they were intended to protect?",
+ "Back-yard studies cannot answer that question. Rigorous investigation and open debate, on a both global and local scale, will be required before anyone can deploy the material in a way that could make a real difference. Meanwhile, the climate crisis will grow more urgent with every day that passes—until, one day, the melting of the cryosphere makes our questions moot. “The limiting factor in our case—and probably in most of these research cases—is money,” Zornetzer said. “We’re moving as fast as money will allow us to move. We know that the window is closing and that time is running out. We’ve got maybe a decade or so before it’s too late.”",
+ "Johnson and Manzara built their “glaciers” by digging four trenches, using a Bobcat forklift, on Manzara’s property. The bottom of each trench was lined with plastic and had a forty-five-degree incline. They filled the trenches with water, allowed the top to freeze, and then drained water from the deeper edge, leaving a foot-thick sheet of sloped ice. When we inspected the glaciers in St. Elmo, they were still mostly covered with snow, but ice peeked out around the edges. Thermometers above- and belowground recorded temperatures; albedometers hung from nearby metal poles. A weather station measured air pressure and wind. Kneeling in the snow, Manzara discovered that a car battery that had been powering one of several small data loggers had failed. He fetched a replacement from his workshop.",
+ "I leaned forward to inspect the ice. One glacier was smudged with carbon black, a powdery soot that settles on glaciers. “That’s what’s killing the glaciers in the Himalayas,” Manzara explained. Forests go up in smoke; humans continue to burn dirty fuels. “That makes a lot of soot, and it ends up right on top of the ice and snow, and the sun comes out, and it just melts.” It was the effect they were studying, but in reverse. Another glacier was also smudged with carbon black, but had been covered with white granules. I thought the soot-topped glacier had shrunk more than the others, but it was too soon to tell. The real question was whether the coated glacier would last longer.",
+ "We went back to Manzara’s kitchen table to regroup. Near a window that overlooked the pond, the glaciers, and a bird feeder busy with cardinals and woodpeckers, Field shared updates from the Bright Ice Initiative’s latest meetings with partners in India. This summer, if the permissions are finalized, the group will conduct a field test on a section of the six-square-mile Chhota Shigri Glacier, in the Hindu Kush region of the western Himalayas. “Chhota” means “small” in Hindi, but it is part of a network of thousands of glaciers that represent the third-largest block of freshwater on Earth, after the polar ice caps; hydrologists have nicknamed it the Third Pole. Unexpected melts put downstream communities at risk of floods, and the disappearance of the glaciers could deprive billions of people of freshwater. Soumitra Das leads the nonprofit Healthy Climate Initiative and lived in the foothills of the Himalayas before moving to the U.S. He is now working with Field and her colleagues, and estimates that the total cost of a three-year field trial, including materials, equipment, and compensation for local graduate students to assist with monitoring, would be about two hundred and fifty thousand dollars. He told me that Himalayan glaciers are so crucial to global sea levels, and thus to political stability, that the test has to go forward; he called the effort to save ice “our most important work to save humanity.”",
+ "It stayed cold in Minnesota for another two weeks. On Easter Sunday, Manzara put on some rubber boots and walked to check on the glaciers. The temperature had got into the sixties the day before, and had finally been above freezing at night—the hillside’s snow had given way to spring mud. At the test site, the snowpack had melted, revealing the ice itself. The darkest glacier—the one covered in soot—was clearly shrinking fastest. But the dark glacier treated with granules was melting more slowly. The granules had stuck. The ice had a little time left. ♦"
+ ]
+ }
+ ]
+ }
}
}
diff --git a/tests/resources/parser/test_data/us/WashingtonTimes.json b/tests/resources/parser/test_data/us/WashingtonTimes.json
index 9f66f52b7..b95836913 100644
--- a/tests/resources/parser/test_data/us/WashingtonTimes.json
+++ b/tests/resources/parser/test_data/us/WashingtonTimes.json
@@ -4,6 +4,37 @@
"Tom Davies"
],
"publishing_date": "2023-04-28 13:53:25",
- "title": "Indiana governor endorses revised GOP state budget package"
+ "title": "Indiana governor endorses revised GOP state budget package",
+ "body": {
+ "summary": [],
+ "sections": [
+ {
+ "headline": [],
+ "paragraphs": [
+ "INDIANAPOLIS (AP) — A messy state budget deal gained the endorsement of Indiana Gov. Eric Holcomb on Friday soon after it won final passage from state legislators.",
+ "Republican legislative leaders scrambled for much of Thursday to add about $300 million in school funding after facing complaints that a costly expansion of eligibility for Indiana’s private school voucher program would leave traditional schools with small funding increases.",
+ "The revised deal finally got House and Senate votes in Friday’s early hours, clearing both Republican-dominated chambers in near-party line votes that wrapped up about 2:30 a.m.",
+ "Despite not seeking the voucher program expansion, nor a speedup of planned income tax rate cuts that GOP lawmakers included in the deal, Holcomb said during a Statehouse news conference that he would “gladly” sign the two-year $44.6 billion budget.",
+ "“It is a generational impact budget,” the Republican governor said. “Its policies and plans can be viewed, as we do, as a blueprint for growth, and we’re going to be busy building up and growing all over the state.”",
+ "Holcomb pointed to budget provisions such as $500 million toward a new round of regional economic development grants and about $120 million to fill his request to eliminate school material and textbook rental fees charged to families.",
+ "Lawmakers didn’t give Holcomb all he sought – prominently deciding to provide about two-thirds of the governor’s requested funding for expanding county health department programs. The funding would be aimed at improving the state’s low rankings in areas such as obesity, smoking and life expectancy.",
+ "Holcomb said it was a start in an effort that he made one of his top budget priorities after a state commission found that Indiana’s local public health spending ranks 45th among the states.",
+ "State Health Commissioner Dr. Kristina Box said the Legislature provided “the major components that we need in order to be able to go forward.”",
+ "“There are some strings attached, but they’re all things that are very, very workable, and we’re very excited to get started,” Box said.",
+ "Conservative lawmakers foisted several other issues onto Holcomb’s desk during the four-month legislative session that he didn’t seek - and drew crowds of protesters to the Statehouse.",
+ "Holcomb has already signed into law a measure that will prohibit transgender youth from accessing medication or surgeries that aid in transition and mandate those currently taking medication to stop by the end of the year. The American Civil Liberties Union of Indiana has filed a lawsuit seeking to stop the ban from taking effect July 1.",
+ "The governor, meanwhile, hasn’t yet said whether he will sign a bill requiring schools to notify parents if their child requests a name or pronoun change at school or another that could make it easier to ban books from public school libraries if they face complaints of being sexually inappropriate for children.",
+ "A leader of the state’s largest teachers union said lawmakers “missed the mark” on helping schools around the state or stemming the loss of teachers leaving the classroom.",
+ "“Most of what happened in the session had nothing to do with that,” said Dan Holub, executive director of the Indiana State Teachers Association. “We’ve been obsessed with social issues and things like that and, actually, that’s done more to cause educators to think twice about the profession they’ve chosen.”",
+ "Public schools groups and Democrats argued the voucher expansion’s cost shortchanges traditional public schools with funding increases less than the inflation rate.",
+ "The voucher expansion in the initial budget deal announced Wednesday by Republican leaders was set to consume more than $500 million of the nearly $1.2 billion increase planned for general K-12 funding over the next two years.",
+ "The revised plan added about $300 million to boost the total increase to about $1.5 billion - increasing funding for public school districts to 5.4% in the budget’s first year and 1.3% in the second year, according to projections from the nonpartisan Legislative Services Agency.",
+ "The voucher expansion includes raising the income limit for a family of four from the current $154,000 to $220,000 and removing a requirement for most families that at least one child had previously attended a public school.",
+ "Senate Democratic Leader Greg Taylor of Indianapolis said schools will be unable to significantly increase Indiana’s lagging teacher pay as state money is siphoned away to the voucher program.",
+ "“We can’t find ourselves at the bottom of the barrel on education, at the bottom of barrel on public health, and come into a legislative session, when we know these things are true, and they decide we’re going to focus on making sure that the wealthy get more assistance,” Taylor said."
+ ]
+ }
+ ]
+ }
}
}
diff --git a/tests/resources/parser/test_data/us/WorldTruth.json b/tests/resources/parser/test_data/us/WorldTruth.json
index ed067282d..b40aabb1a 100644
--- a/tests/resources/parser/test_data/us/WorldTruth.json
+++ b/tests/resources/parser/test_data/us/WorldTruth.json
@@ -1,6 +1,40 @@
{
"V1": {
"publishing_date": "2021-12-25 13:46:00-04:00",
- "title": "The Mother of All Antioxidants"
+ "title": "The Mother of All Antioxidants",
+ "body": {
+ "summary": [],
+ "sections": [
+ {
+ "headline": [],
+ "paragraphs": [
+ "We have all heard of antioxidants, but have we heard of the mother of all antioxidants? One that is the secret to prevent cancer, heart disease, aging, neurological issues and more? This single antioxidant has been studied in great depth yet most of us know nothing about it and many doctors have no idea how to address the epidemic of its deficiency in humans.",
+ "We are of course talking about Glutathione (pronounced “gloota-thigh-own.”) This is a powerful detoxifier and immune booster and is crucial to a healthy life. Although the body does make some of its own Glutathione, poor food quality, pollution, toxic environments, stress, infections and radiation are all depleting out bodies glutathione.",
+ "Glutathione is a simple molecule produced naturally in the body at all times. It’s a combination of three building blocks of protein or amino acids — cysteine, glycine and glutamine.",
+ "The best part of glutathione is that is contains sulfur chemical groups that work to trap all the bad things like free radicals and toxins such as mercury and heavy metals in our body then flush them out. This is especially important in our current world of heavy metal bombardment.",
+ "The body makes it, but it’s often not enough in our strenuous environment. Here are some food sources that either contain glutathione or its precursors to help the body produce more.",
+ "Notice they are all healthy foods we often don’t get enough of? This is another big issue with our diets. We consume a lot of junk, meat, dairy and processed foods, items that clinically have been proven to be the number one causes of heart disease and illness yet we consume them in huge quantities. The key is to limit these and eat a lot of fresh, lively foods that provide nutrients and don’t ask the body to perform a mega job to digest.",
+ "You can also increase your exercise as glutathione production increases when you exercise. Breathing and sweating are also great ways to get rid of toxins in the body.",
+ "What makes glutathione so important and powerful is that it recycles antioxidants. When your body is dealing with free radicals, it is essentially passing them from one molecule to another. They might go from vitamin C to vitamin E to lipoic acid and then to glutathione where they are cooled off. Antioxidants are recycled at this point and the body can now regenerate another glutathione molecule to go back at it again.",
+ "Glutathione is crucial for helping your immune system fight chronic illness as it acts as the carrier of toxins out of your body. Like a fly trap, toxins stick to glutathione and they are carried to the bile into the stools and out of the body. Glutathione is also powerful enough that it has been shown to help in the treatment of AIDS greatly. The body is going to get in touch with oxidants and toxins, the more we can deal with those the better our body will be at staying strong, this is why glutathione is so important.",
+ "Dr. Mark Hyman has given 9 tips to increase your Glutathione levels. Check them out!",
+ "1. Consume sulfur-rich foods. The main ones in the diet are garlic, onions and the cruciferous vegetables (broccoli, kale, collards, cabbage, cauliflower, watercress, etc.).",
+ "2. Try bioactive whey protein. This is great source of cysteine and the amino acid building blocks for glutathione synthesis. As you know, I am not a big fan of dairy, but this is an exception — with a few warnings. The whey protein MUST be bioactive and made from non-denatured proteins (“denaturing” refers to the breakdown of the normal protein structure). Choose non-pasteurized and non-industrially produced milk that contains no pesticides, hormones, or antibiotics. Immunocal is a prescription bioactive non-denatured whey protein that is even listed in the Physician’s Desk Reference.",
+ "3. Exercise boosts your glutathione levels and thereby helps boost your immune system, improve detoxification and enhance your body’s own antioxidant defenses. Start slow and build up to 30 minutes a day of vigorous aerobic exercise like walking or jogging, or play various sports. Strength training for 20 minutes 3 times a week is also helpful.",
+ "One would think it would be easy just to take glutathione as a pill, but the body digests protein — so you wouldn’t get the benefits if you did it this way. However, the production and recycling of glutathione in the body requires many different nutrients and you CAN take these. Here are the main supplements that need to be taken consistently to boost glutathione. Besides taking a multivitamin and fish oil, supporting my glutathione levels with these supplements is the most important thing I do every day for my personal health.",
+ "4. N-acetyl-cysteine. This has been used for years to help treat asthma and lung disease and to treat people with life-threatening liver failure from Tylenol overdose. In fact, I first learned about it in medical school while working in the emergency room. It is even given to prevent kidney damage from dyes used during x-ray studies.",
+ "5. Alpha lipoic acid. This is a close second to glutathione in importance in our cells and is involved in energy production, blood sugar control, brain health and detoxification. The body usually makes it, but given all the stresses we are under, we often become depleted.",
+ "6. Methylation nutrients (folate and vitamins B6 and B12). These are perhaps the most critical to keep the body producing glutathione. Methylation and the production and recycling of glutathione are the two most important biochemical functions in your body. Take folate (especially in the active form of 5 methyltetrahydrofolate), B6 (in active form of P5P) and B12 (in the active form of methylcobalamin).",
+ "7. Selenium. This important mineral helps the body recycle and produce more glutathione.",
+ "8. A family of antioxidants including vitamins C and E (in the form of mixed tocopherols), work together to recycle glutathione.",
+ "9. Milk thistle (silymarin) has long been used in liver disease and helps boost glutathione levels.",
+ "Sources:",
+ "drhyman.com",
+ "articles.mercola.com",
+ "www.webmd.com"
+ ]
+ }
+ ]
+ }
}
}
From d8f32970b48de19a18a5c01d66e731aa3439a359 Mon Sep 17 00:00:00 2001
From: Conrad Dobberstein <29147025+dobbersc@users.noreply.github.com>
Date: Mon, 12 Feb 2024 14:22:50 +0100
Subject: [PATCH 03/13] Rename `transformation` -> `deserialization_functions`
for extraction encoder
---
tests/utility.py | 21 ++++++++-------------
1 file changed, 8 insertions(+), 13 deletions(-)
diff --git a/tests/utility.py b/tests/utility.py
index 0e7ceba12..79b62bdf6 100644
--- a/tests/utility.py
+++ b/tests/utility.py
@@ -1,7 +1,6 @@
import datetime
import gzip
import json
-from abc import ABC
from dataclasses import dataclass
from pathlib import Path
from typing import Any, Callable, Dict, Generic, Optional, Type, TypeVar
@@ -95,27 +94,23 @@ def default(self, obj: object):
return json.JSONEncoder.default(self, obj)
-class CustomDecoder(json.JSONDecoder, ABC):
- transformations: Dict[str, Callable[[Any], Any]]
+class ExtractionDecoder(json.JSONDecoder):
+ deserialization_functions: Dict[str, Callable[[Any], Any]] = {
+ "crawl_date": datetime.datetime.fromisoformat,
+ "publishing_date": datetime.datetime.fromisoformat,
+ "body": ArticleBody.deserialize,
+ }
def __init__(self, *args, **kwargs):
json.JSONDecoder.__init__(self, object_hook=self.object_hook, *args, **kwargs)
def object_hook(self, obj_dict):
- for key, transformation in self.transformations.items():
+ for key, deserialization_function in self.deserialization_functions.items():
if (serialized_value := obj_dict.get(key)) is not None:
- obj_dict[key] = transformation(serialized_value)
+ obj_dict[key] = deserialization_function(serialized_value)
return obj_dict
-class ExtractionDecoder(CustomDecoder):
- transformations: Dict[str, Callable[[Any], Any]] = {
- "crawl_date": lambda timestamp: datetime.datetime.fromisoformat(timestamp),
- "publishing_date": lambda timestamp: datetime.datetime.fromisoformat(timestamp),
- "body": lambda body: ArticleBody.deserialize(body),
- }
-
-
@dataclass
class JSONFileWithExtractionDecoderEncoder(JSONFile[_T]):
"""Custom JSONFile using default ExtractionEncoder/ExtractionDecoder"""
From 63a462d059b9120158f1a2ba9393f34fa80e3cbc Mon Sep 17 00:00:00 2001
From: Conrad Dobberstein <29147025+dobbersc@users.noreply.github.com>
Date: Mon, 12 Feb 2024 14:23:52 +0100
Subject: [PATCH 04/13] Refactor `TextSequenceTree` (de)serialization from
transformation dictionary to abstract functions
---
src/fundus/parser/data.py | 70 ++++++++++++++++-----------------------
1 file changed, 29 insertions(+), 41 deletions(-)
diff --git a/src/fundus/parser/data.py b/src/fundus/parser/data.py
index 0ee95c98d..543712ca5 100644
--- a/src/fundus/parser/data.py
+++ b/src/fundus/parser/data.py
@@ -1,9 +1,7 @@
-from abc import ABC
+from abc import ABC, abstractmethod
from dataclasses import dataclass, fields
from typing import (
Any,
- Callable,
- ClassVar,
Collection,
Dict,
Iterable,
@@ -16,7 +14,7 @@
overload,
)
-from typing_extensions import TypeAlias
+from typing_extensions import Self, TypeAlias
from fundus.logging import basic_logger
@@ -202,24 +200,7 @@ def __eq__(self, other: object) -> bool:
@dataclass
class TextSequenceTree(ABC):
- """Base class to traverse and build trees of TextSequence.
-
- The ClassVar __transformation__ is needed to serialize the tree. There must be an entry with type
- Tuple[Callable, Callable] for each field with the first callable beeing the serialization and
- the second the deserialization of that specific field.
-
- Examples:
- >>> import datetime
- >>> class Tree(TextSequenceTree):
- >>> head: TextSequence
- >>> tail: TextSequence
- >>>
- >>> __transformation__ = {"head": (list, TextSequence), "tail": (list, TextSequence)}
-
-
- """
-
- __transformation__: ClassVar[Dict[str, Tuple[Callable[[Any], Any], Callable[[Any], Any]]]]
+ """Base class to traverse and build trees of TextSequence."""
def as_text_sequence(self) -> TextSequence:
texts = [text for tl in self.df_traversal() for text in tl]
@@ -245,20 +226,14 @@ def recursion(o: object):
for value in self:
yield from recursion(value)
+ @abstractmethod
def serialize(self) -> Dict[str, Any]:
- serialized = {}
- for field in fields(self):
- name = field.name
- serialized[name] = self.__transformation__[name][0](getattr(self, name))
- return serialized
+ pass
@classmethod
- def deserialize(cls, obj: Dict[str, Any]) -> "TextSequenceTree":
- kwargs = {}
- for name, value in obj.items():
- kwargs[name] = cls.__transformation__[name][1](value)
- # noinspection PyArgumentList
- return cls(**kwargs)
+ @abstractmethod
+ def deserialize(cls, serialized: Dict[str, Any]) -> Self:
+ pass
def __iter__(self) -> Iterator[Any]:
field_values = [getattr(self, f.name) for f in fields(self)]
@@ -276,7 +251,15 @@ class ArticleSection(TextSequenceTree):
headline: TextSequence
paragraphs: TextSequence
- __transformation__ = {"headline": (list, TextSequence), "paragraphs": (list, TextSequence)}
+ def serialize(self) -> Dict[str, Any]:
+ return {
+ "headline": list(self.headline),
+ "paragraphs": list(self.paragraphs),
+ }
+
+ @classmethod
+ def deserialize(cls, serialized: Dict[str, Any]) -> Self:
+ return cls(headline=TextSequence(serialized["headline"]), paragraphs=TextSequence(serialized["paragraphs"]))
@dataclass
@@ -284,10 +267,15 @@ class ArticleBody(TextSequenceTree):
summary: TextSequence
sections: List[ArticleSection]
- __transformation__ = {
- "summary": (list, TextSequence),
- "sections": (
- lambda sections: [section.serialize() for section in sections],
- lambda sections: [ArticleSection.deserialize(section) for section in sections],
- ),
- }
+ def serialize(self) -> Dict[str, Any]:
+ return {
+ "summary": list(self.summary),
+ "sections": [section.serialize() for section in self.sections],
+ }
+
+ @classmethod
+ def deserialize(cls, serialized: Dict[str, Any]) -> Self:
+ return cls(
+ summary=TextSequence(serialized["summary"]),
+ sections=[ArticleSection.deserialize(section) for section in serialized["sections"]],
+ )
From 493b734b269965c44810eb6173dbb8d9216e22e5 Mon Sep 17 00:00:00 2001
From: Max Dallabetta
Date: Mon, 12 Feb 2024 16:39:18 +0100
Subject: [PATCH 05/13] sort parser test case attributes
---
scripts/generate_parser_test_files.py | 2 +-
tests/resources/parser/test_data/at/ORF.json | 6 +-
.../parser/test_data/de/BerlinerZeitung.json | 14 ++--
tests/resources/parser/test_data/de/Bild.json | 26 +++----
.../parser/test_data/de/BusinessInsider.json | 32 +++++++++
tests/resources/parser/test_data/de/DW.json | 36 +++++-----
.../parser/test_data/de/DieWelt.json | 20 +++---
.../parser/test_data/de/DieZeit.json | 22 +++---
tests/resources/parser/test_data/de/FAZ.json | 24 +++----
.../resources/parser/test_data/de/Focus.json | 30 ++++----
tests/resources/parser/test_data/de/MDR.json | 30 ++++----
.../resources/parser/test_data/de/Merkur.json | 6 +-
tests/resources/parser/test_data/de/NDR.json | 30 ++++----
tests/resources/parser/test_data/de/NTV.json | 18 ++---
tests/resources/parser/test_data/de/SZ.json | 27 +++++++
.../parser/test_data/de/SpiegelOnline.json | 18 ++---
.../resources/parser/test_data/de/Stern.json | 40 +++++------
.../parser/test_data/de/Tagesschau.json | 16 ++---
tests/resources/parser/test_data/de/Taz.json | 24 +++----
tests/resources/parser/test_data/de/WAZ.json | 24 +++----
.../parser/test_data/fr/LeMonde.json | 24 +++----
.../parser/test_data/na/TheNamibian.json | 6 +-
.../parser/test_data/uk/TheGuardian.json | 22 +++---
.../parser/test_data/uk/TheIndependent.json | 20 +++---
.../parser/test_data/uk/TheTelegraph.json | 26 +++----
.../resources/parser/test_data/uk/iNews.json | 22 +++---
.../resources/parser/test_data/us/APNews.json | 62 ++++++++--------
tests/resources/parser/test_data/us/CNBC.json | 27 +++----
.../parser/test_data/us/FoxNews.json | 22 +++---
.../parser/test_data/us/FreeBeacon.json | 34 ++++-----
.../parser/test_data/us/LATimes.json | 6 +-
.../parser/test_data/us/OccupyDemocrats.json | 22 +++---
.../parser/test_data/us/Reuters.json | 18 ++---
.../parser/test_data/us/TheGatewayPundit.json | 6 +-
.../parser/test_data/us/TheIntercept.json | 14 ++--
.../parser/test_data/us/TheNation.json | 72 +++++++++++++++++++
.../parser/test_data/us/TheNewYorker.json | 20 +++---
.../parser/test_data/us/WashingtonTimes.json | 6 +-
.../parser/test_data/us/WorldTruth.json | 6 +-
39 files changed, 501 insertions(+), 379 deletions(-)
diff --git a/scripts/generate_parser_test_files.py b/scripts/generate_parser_test_files.py
index 63037deb4..3e1545b44 100644
--- a/scripts/generate_parser_test_files.py
+++ b/scripts/generate_parser_test_files.py
@@ -51,7 +51,7 @@ def get_test_article(enum: PublisherEnum) -> Optional[Article]:
args = parser.parse_args()
# sort args.attributes for consistency
- args.attributes = list(sorted(args.attributes)) or attributes_required_to_cover
+ args.attributes = sorted(set(args.attributes) or attributes_required_to_cover)
basic_logger.setLevel(WARN)
diff --git a/tests/resources/parser/test_data/at/ORF.json b/tests/resources/parser/test_data/at/ORF.json
index 76cad7bfd..955b1af85 100644
--- a/tests/resources/parser/test_data/at/ORF.json
+++ b/tests/resources/parser/test_data/at/ORF.json
@@ -3,8 +3,6 @@
"authors": [
"ORF.at"
],
- "publishing_date": "2023-04-28 18:03:46.463000+00:00",
- "title": "Mädchen bei Straßenbahnunfall in Wien verletzt",
"body": {
"summary": [],
"sections": [
@@ -16,6 +14,8 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-04-28 18:03:46.463000+00:00",
+ "title": "Mädchen bei Straßenbahnunfall in Wien verletzt"
}
}
diff --git a/tests/resources/parser/test_data/de/BerlinerZeitung.json b/tests/resources/parser/test_data/de/BerlinerZeitung.json
index b405ec7fe..a5a0bdf4e 100644
--- a/tests/resources/parser/test_data/de/BerlinerZeitung.json
+++ b/tests/resources/parser/test_data/de/BerlinerZeitung.json
@@ -3,12 +3,6 @@
"authors": [
"AFP"
],
- "publishing_date": "2023-04-28 17:52:31.847000+00:00",
- "title": "550 Kinder gezeugt: Gericht stoppt übereifrigen Samenspender",
- "topics": [
- "News",
- "Niederlande"
- ],
"body": {
"summary": [
"Nach der Zeugung von mindestens 550 Kindern hat ein niederländisches Gericht einen übereifrigen Samenspender gestoppt. Das Gericht untersagte dem Mann am Freitag jede weitere Samenspende. Bei einem Verstoß muss er 100.000 Euro Strafe zahlen. Eine Frau, die durch eine Samenspende des Mannes ein Kind bekam, und die Stiftung Donorkind hatten den 41-Jährigen verklagt. Weil er in Online-Netzwerken weiter seine Dienste anbot, wurde er nun im Eilverfahren verurteilt."
@@ -59,6 +53,12 @@
"paragraphs": []
}
]
- }
+ },
+ "publishing_date": "2023-04-28 17:52:31.847000+00:00",
+ "title": "550 Kinder gezeugt: Gericht stoppt übereifrigen Samenspender",
+ "topics": [
+ "News",
+ "Niederlande"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/de/Bild.json b/tests/resources/parser/test_data/de/Bild.json
index dbc72e90d..6ba73548b 100644
--- a/tests/resources/parser/test_data/de/Bild.json
+++ b/tests/resources/parser/test_data/de/Bild.json
@@ -3,18 +3,6 @@
"authors": [
"JÖRG ZSCHOCHE"
],
- "publishing_date": "2023-05-15 11:52:09.860000+00:00",
- "title": "Bubi-Bomber wieder da: Thioune fordert Geduld mit Niemiec",
- "topics": [
- "Fortuna Düsseldorf",
- "zweite Bundesliga",
- "aufstieg",
- "Jörg Zschoche",
- "Thioune Daniel",
- "Saison 2022-2023",
- "Sport – Leuchtturm Essen",
- "Niemiec Jona"
- ],
"body": {
"summary": [
"Es war bereits der zwölfte Einsatz in der 2. Bundesliga von Fortuna Düsseldorfs Bubi Jona Niemiec (21). Kaum nach 67 Minuten eingewechselt, scheiterte der Stürmer nur an der Latte. Doch war er beim 0:0 auf Pauli eine Bereicherung."
@@ -30,6 +18,18 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-05-15 11:52:09.860000+00:00",
+ "title": "Bubi-Bomber wieder da: Thioune fordert Geduld mit Niemiec",
+ "topics": [
+ "Fortuna Düsseldorf",
+ "zweite Bundesliga",
+ "aufstieg",
+ "Jörg Zschoche",
+ "Thioune Daniel",
+ "Saison 2022-2023",
+ "Sport – Leuchtturm Essen",
+ "Niemiec Jona"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/de/BusinessInsider.json b/tests/resources/parser/test_data/de/BusinessInsider.json
index 229e73655..811ec6369 100644
--- a/tests/resources/parser/test_data/de/BusinessInsider.json
+++ b/tests/resources/parser/test_data/de/BusinessInsider.json
@@ -3,6 +3,38 @@
"authors": [
"Matthew Loh"
],
+ "body": {
+ "summary": [
+ "Evergrande, einer der größten Immobilienentwickler Chinas, ist mit 300 Milliarden Dollar (277 Milliarden Euro) verschuldet.",
+ "Das ist die größte Schuldenlast, die ein Unternehmen derzeit weltweit hat.",
+ "Analysten befürchten, dass der Zusammenbruch von Evergrande Schockwellen durch die chinesische Wirtschaft schicken würde."
+ ],
+ "sections": [
+ {
+ "headline": [],
+ "paragraphs": [
+ "Evergrande, einst der zweitgrößte Immobilienentwickler Chinas nach Umsatz, wird am Montag auf Anordnung eines Hongkonger Gerichts liquidiert.",
+ "Die Entscheidung markiert den Abschluss einer zweijährigen Krise des in Shenzhen ansässigen Bauträgers, der im September 2021 signalisierte, dass er Kredite in Höhe von 300 Milliarden Dollar (277 Milliarden Euro) an Hunderte von Banken und Finanzunternehmen nicht mehr zurückzahlen könne.",
+ "Analysten befürchten seit langem, dass der Zusammenbruch des umkämpften Immobiliengiganten Schockwellen über Chinas bereits ins Stocken geratene Wirtschaft aussenden und möglicherweise sogar ausländische Firmen destabilisieren würde. Experten sprachen damals von Chinas „Lehman Brothers Moment“.",
+ "Um euch das Ausmaß des ehemaligen chinesischen Immobilienlieblings zu verdeutlichen, haben wir einige Statistiken und Vergleiche zusammengestellt, die das Ganze ins rechte Licht rücken."
+ ]
+ },
+ {
+ "headline": [
+ "Statistiken, die die enorme Größe von Evergrande, Chinas sterbendem Immobilienriesen, verdeutlichen"
+ ],
+ "paragraphs": [
+ "Deine Privatsphäre-Einstellungen verhindern das Laden und Anzeigen aller externen Inhalte (z.B. Grafiken, Tabellen, Abo-Login) und Sozialen Netzwerke (z.B. Youtube, Twitter, Facebook, Instagram etc.) \r\n\r\nZur Anzeige aktiviere bitte die Einstellungen in den Privatsphäre-Einstellungen.\r\n\r",
+ "Deine Privatsphäre-Einstellungen verhindern das Laden und Anzeigen aller externen Inhalte (z.B. Grafiken, Tabellen, Abo-Login) und Sozialen Netzwerke (z.B. Youtube, Twitter, Facebook, Instagram etc.) \r\n\r\nZur Anzeige aktiviere bitte die Einstellungen in den Privatsphäre-Einstellungen.\r\n\r",
+ "Deine Privatsphäre-Einstellungen verhindern das Laden und Anzeigen aller externen Inhalte (z.B. Grafiken, Tabellen, Abo-Login) und Sozialen Netzwerke (z.B. Youtube, Twitter, Facebook, Instagram etc.) \r\n\r\nZur Anzeige aktiviere bitte die Einstellungen in den Privatsphäre-Einstellungen.\r\n\r",
+ "Deine Privatsphäre-Einstellungen verhindern das Laden und Anzeigen aller externen Inhalte (z.B. Grafiken, Tabellen, Abo-Login) und Sozialen Netzwerke (z.B. Youtube, Twitter, Facebook, Instagram etc.) \r\n\r\nZur Anzeige aktiviere bitte die Einstellungen in den Privatsphäre-Einstellungen.\r\n\r",
+ "Deine Privatsphäre-Einstellungen verhindern das Laden und Anzeigen aller externen Inhalte (z.B. Grafiken, Tabellen, Abo-Login) und Sozialen Netzwerke (z.B. Youtube, Twitter, Facebook, Instagram etc.) \r\n\r\nZur Anzeige aktiviere bitte die Einstellungen in den Privatsphäre-Einstellungen.\r\n\r",
+ "Deine Privatsphäre-Einstellungen verhindern das Laden und Anzeigen aller externen Inhalte (z.B. Grafiken, Tabellen, Abo-Login) und Sozialen Netzwerke (z.B. Youtube, Twitter, Facebook, Instagram etc.) \r\n\r\nZur Anzeige aktiviere bitte die Einstellungen in den Privatsphäre-Einstellungen.\r\n\r",
+ "Deine Privatsphäre-Einstellungen verhindern das Laden und Anzeigen aller externen Inhalte (z.B. Grafiken, Tabellen, Abo-Login) und Sozialen Netzwerke (z.B. Youtube, Twitter, Facebook, Instagram etc.) \r\n\r\nZur Anzeige aktiviere bitte die Einstellungen in den Privatsphäre-Einstellungen.\r\n\r"
+ ]
+ }
+ ]
+ },
"publishing_date": "2024-01-29 19:00:45+00:00",
"title": "Wie groß ist Evergrande, Chinas strauchelnder Immobilienriese?",
"topics": [
diff --git a/tests/resources/parser/test_data/de/DW.json b/tests/resources/parser/test_data/de/DW.json
index dcbaa6f7c..b516edebd 100644
--- a/tests/resources/parser/test_data/de/DW.json
+++ b/tests/resources/parser/test_data/de/DW.json
@@ -3,16 +3,6 @@
"authors": [
"Roman Goncharenko"
],
- "publishing_date": "2023-04-28 00:00:00",
- "title": "Ukrainische Gegenoffensive: Ziele, Chancen, Risiken",
- "topics": [
- "Ukrainekrieg",
- "Ukraine",
- "Russland",
- "Bachmut",
- "Waffenlieferungen",
- "Gegenoffensive"
- ],
"body": {
"summary": [
"Die Ukraine bereitet sich auf eine womöglich entscheidende Gegenoffensive vor, um die von Russland besetzten Gebiete zu befreien. Je länger Kiew wartet, desto besser scheinen seine Chancen. "
@@ -65,19 +55,23 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-04-28 00:00:00",
+ "title": "Ukrainische Gegenoffensive: Ziele, Chancen, Risiken",
+ "topics": [
+ "Ukrainekrieg",
+ "Ukraine",
+ "Russland",
+ "Bachmut",
+ "Waffenlieferungen",
+ "Gegenoffensive"
+ ]
},
"V2": {
"authors": [
"Julia Vergin",
"Clare Roth"
],
- "publishing_date": "2023-06-13 12:15:32.158000+00:00",
- "title": "Post-Vac-Syndrom nach COVID-19-Impfung: Was wissen wir? ",
- "topics": [
- "Long COVID",
- "Coronavirus"
- ],
"body": {
"summary": [
"Müdigkeit und Muskelschmerzen: Jede Impfung kann Nebenwirkungen haben, auch die gegen COVID-19. Doch es ist sehr schwer das sogenannte Post-Vac-Syndrom zu diagnostizieren. Was wissen wir über diese Impfschäden? "
@@ -136,6 +130,12 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-06-13 12:15:32.158000+00:00",
+ "title": "Post-Vac-Syndrom nach COVID-19-Impfung: Was wissen wir? ",
+ "topics": [
+ "Long COVID",
+ "Coronavirus"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/de/DieWelt.json b/tests/resources/parser/test_data/de/DieWelt.json
index 4058fc88b..f180ad2d7 100644
--- a/tests/resources/parser/test_data/de/DieWelt.json
+++ b/tests/resources/parser/test_data/de/DieWelt.json
@@ -3,15 +3,6 @@
"authors": [
"Holger Zschäpitz"
],
- "publishing_date": "2023-04-28 18:03:06+00:00",
- "title": "BIP: Diese Grafiken zeigen, wie schlecht es um Deutschlands Wirtschaft steht",
- "topics": [
- "Zschaepitz-Holger",
- "Rezession",
- "Konjunkturpolitik",
- "Wachstum",
- "Bruttoinlandsprodukt (BIP)"
- ],
"body": {
"summary": [
" Die deutsche Wirtschaft stagniert, während andere europäische Volkswirtschaften im ersten Quartal positiv überraschen. Experten prognostizieren, dass es keine Erholung geben wird. Deutschland ist das Schlusslicht in Europa – und die Rezession kommt immer näher. "
@@ -42,6 +33,15 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-04-28 18:03:06+00:00",
+ "title": "BIP: Diese Grafiken zeigen, wie schlecht es um Deutschlands Wirtschaft steht",
+ "topics": [
+ "Zschaepitz-Holger",
+ "Rezession",
+ "Konjunkturpolitik",
+ "Wachstum",
+ "Bruttoinlandsprodukt (BIP)"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/de/DieZeit.json b/tests/resources/parser/test_data/de/DieZeit.json
index 68e5f85c8..b2f7ff55d 100644
--- a/tests/resources/parser/test_data/de/DieZeit.json
+++ b/tests/resources/parser/test_data/de/DieZeit.json
@@ -3,16 +3,6 @@
"authors": [
"dpa"
],
- "publishing_date": "2023-04-28 20:22:00+02:00",
- "title": "Basketball-Euroleague: Nach Massenschlägerei in Madrid: Sanktionen und Reue",
- "topics": [
- "News",
- "Basketball-Euroleague",
- "Sergio Llull",
- "Real Madrid",
- "Partizan Belgrad",
- "Massenschlägerei"
- ],
"body": {
"summary": [],
"sections": [
@@ -36,6 +26,16 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-04-28 20:22:00+02:00",
+ "title": "Basketball-Euroleague: Nach Massenschlägerei in Madrid: Sanktionen und Reue",
+ "topics": [
+ "News",
+ "Basketball-Euroleague",
+ "Sergio Llull",
+ "Real Madrid",
+ "Partizan Belgrad",
+ "Massenschlägerei"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/de/FAZ.json b/tests/resources/parser/test_data/de/FAZ.json
index 6f06a8114..a8de08ab8 100644
--- a/tests/resources/parser/test_data/de/FAZ.json
+++ b/tests/resources/parser/test_data/de/FAZ.json
@@ -3,17 +3,6 @@
"authors": [
"Ralf Euler"
],
- "publishing_date": "2023-04-28 19:20:36+02:00",
- "title": "49-Euro-Ticket: Pendler zahlen 60 Prozent weniger",
- "topics": [
- "RMV",
- "Rhein-Main-Verkehrsverbund",
- "AfD",
- "Deutsche Bahn",
- "Deutschlandticket",
- "Preissturz",
- "Pendler"
- ],
"body": {
"summary": [
"\t\t\tAlles wird teurer, nur nicht der ÖPNV. Allein der Rhein-Main-Verkehrsverbund hat mehr als 120.000 Deutschlandtickets verkauft - mehr als ein Drittel davon an Kunden, die bislang selten oder nie Bus oder Bahn fahren.\n\t\t"
@@ -50,6 +39,17 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-04-28 19:20:36+02:00",
+ "title": "49-Euro-Ticket: Pendler zahlen 60 Prozent weniger",
+ "topics": [
+ "RMV",
+ "Rhein-Main-Verkehrsverbund",
+ "AfD",
+ "Deutsche Bahn",
+ "Deutschlandticket",
+ "Preissturz",
+ "Pendler"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/de/Focus.json b/tests/resources/parser/test_data/de/Focus.json
index 72c3ad0d5..f7ac6322a 100644
--- a/tests/resources/parser/test_data/de/Focus.json
+++ b/tests/resources/parser/test_data/de/Focus.json
@@ -3,20 +3,6 @@
"authors": [
"FOCUS online"
],
- "publishing_date": "2023-04-28 17:25:31+00:00",
- "title": "Lego feiert Star-Wars-Tag: Alle Angebote im Überblick",
- "topics": [
- "Lego",
- "Helm",
- "Diorama",
- "Prominenz",
- "Star Wars Day",
- "Rabatt",
- "Provision",
- "Kalender",
- "Death Metal",
- "Jedi"
- ],
"body": {
"summary": [
"Bald heißt es wieder „May the 4th be with you“! Lego wartet zum Star-Wars-Tag am 4. Mai schon im Vorfeld mit zahlreichen Angeboten auf, die sich vor allem an erwachsene Fans der Science-Fiction-Saga richten. Neben neuen Modellen gibt es im Online-Shop von Lego mehrere Gratiszugaben und sogar ein Gewinnspiel zu entdecken."
@@ -62,6 +48,20 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-04-28 17:25:31+00:00",
+ "title": "Lego feiert Star-Wars-Tag: Alle Angebote im Überblick",
+ "topics": [
+ "Lego",
+ "Helm",
+ "Diorama",
+ "Prominenz",
+ "Star Wars Day",
+ "Rabatt",
+ "Provision",
+ "Kalender",
+ "Death Metal",
+ "Jedi"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/de/MDR.json b/tests/resources/parser/test_data/de/MDR.json
index d83a8d40d..58d18090a 100644
--- a/tests/resources/parser/test_data/de/MDR.json
+++ b/tests/resources/parser/test_data/de/MDR.json
@@ -3,20 +3,6 @@
"authors": [
"David Straub"
],
- "publishing_date": "2023-04-28 05:00:00+02:00",
- "title": "Ist die Thüringer Bratwurst eine Illusion? Das harte Geschäft mit dem Tod",
- "topics": [
- "Nachrichten",
- "Fleisch",
- "Schwein",
- "Schlachtung",
- "Landstolz",
- "Schmalkalden",
- "Holland-Moritz",
- "Rinder",
- "Grafik",
- "Zahlen"
- ],
"body": {
"summary": [
"Beim Fleischkonsum gehört Thüringen zu den Spitzenreitern - doch tatsächlich geschlachtet werden im Freistaat immer weniger Tiere. Naht das Ende der echten Thüringer Bratwurst? Zu Besuch beim mittelständischen Schlachtbetrieb \"Thüringer Landstolz\"."
@@ -106,6 +92,20 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-04-28 05:00:00+02:00",
+ "title": "Ist die Thüringer Bratwurst eine Illusion? Das harte Geschäft mit dem Tod",
+ "topics": [
+ "Nachrichten",
+ "Fleisch",
+ "Schwein",
+ "Schlachtung",
+ "Landstolz",
+ "Schmalkalden",
+ "Holland-Moritz",
+ "Rinder",
+ "Grafik",
+ "Zahlen"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/de/Merkur.json b/tests/resources/parser/test_data/de/Merkur.json
index 3e58b3dcf..10f195183 100644
--- a/tests/resources/parser/test_data/de/Merkur.json
+++ b/tests/resources/parser/test_data/de/Merkur.json
@@ -3,8 +3,6 @@
"authors": [
"Nadja Zinsmeister"
],
- "publishing_date": "2023-04-28 18:16:04+02:00",
- "title": "Nostradamus-Vorhersage lässt Zweifel aufkommen: Ist König Charles III. gar nicht der richtige Thronfolger?",
"body": {
"summary": [
"In England findet bald die Krönungszeremonie von König Charles III. statt. Eine alte Prophezeiung behauptet, dass er schon bald wieder abdanken wird."
@@ -35,6 +33,8 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-04-28 18:16:04+02:00",
+ "title": "Nostradamus-Vorhersage lässt Zweifel aufkommen: Ist König Charles III. gar nicht der richtige Thronfolger?"
}
}
diff --git a/tests/resources/parser/test_data/de/NDR.json b/tests/resources/parser/test_data/de/NDR.json
index 6774e0c9d..24253f953 100644
--- a/tests/resources/parser/test_data/de/NDR.json
+++ b/tests/resources/parser/test_data/de/NDR.json
@@ -3,20 +3,6 @@
"authors": [
"Oliver Kring"
],
- "publishing_date": "2023-04-28 16:15:45.403000+02:00",
- "title": "Einschlag in Elmshorn: Es war ein Meteorit ",
- "topics": [
- "Meteorit",
- "Elmshorn",
- "Einschlag",
- "Meteoritenregen",
- "Wissenschaft",
- "NDR",
- "Norddeutscher Rundfunk",
- "Norddeutschland",
- "Radio",
- "Fernsehen"
- ],
"body": {
"summary": [
"Vor wenigen Tagen berichteten Anwohner in Elmshorn von einem Knall - das Dach eines Hauses wurde durchschlagen. Jetzt ist klar: Es waren Meteoriten, die über Elmshorn heruntergegangen sind."
@@ -55,6 +41,20 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-04-28 16:15:45.403000+02:00",
+ "title": "Einschlag in Elmshorn: Es war ein Meteorit ",
+ "topics": [
+ "Meteorit",
+ "Elmshorn",
+ "Einschlag",
+ "Meteoritenregen",
+ "Wissenschaft",
+ "NDR",
+ "Norddeutscher Rundfunk",
+ "Norddeutschland",
+ "Radio",
+ "Fernsehen"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/de/NTV.json b/tests/resources/parser/test_data/de/NTV.json
index 12a037299..2fec83a46 100644
--- a/tests/resources/parser/test_data/de/NTV.json
+++ b/tests/resources/parser/test_data/de/NTV.json
@@ -3,14 +3,6 @@
"authors": [
"Juliane Rohr"
],
- "publishing_date": "2023-04-28 18:11:01+02:00",
- "title": "Judy Lybke, ganz und gar nicht eigenartig",
- "topics": [
- "Leben",
- "Kunst",
- "Berlin",
- "KunstKultur"
- ],
"body": {
"summary": [],
"sections": [
@@ -46,6 +38,14 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-04-28 18:11:01+02:00",
+ "title": "Judy Lybke, ganz und gar nicht eigenartig",
+ "topics": [
+ "Leben",
+ "Kunst",
+ "Berlin",
+ "KunstKultur"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/de/SZ.json b/tests/resources/parser/test_data/de/SZ.json
index b5bc19d80..767e4593f 100644
--- a/tests/resources/parser/test_data/de/SZ.json
+++ b/tests/resources/parser/test_data/de/SZ.json
@@ -3,6 +3,22 @@
"authors": [
"Lars Brunckhorst"
],
+ "body": {
+ "summary": [
+ "Ob Radler oder Politiker - zwei Rankings lassen wieder tief blicken."
+ ],
+ "sections": [
+ {
+ "headline": [],
+ "paragraphs": [
+ "Andere oder sich selbst mit anderen zu vergleichen, ist ein zutiefst menschliches Bedürfnis. Ob am Arbeitsplatz, in der Schule, im Sport oder bei Model-Casting-Shows - immer geht es darum: Wer ist schneller, größer, schöner, reicher oder geistreicher? Die Zahl der Rankings kennt keine Grenzen. Für alle, die von der Bundesligatabelle über die Forbes-Liste bis zu den Schlagern der Woche ein Faible für Hitlisten haben, waren die vergangenen Tage eine gute Zeit. Da verteilte zunächst der Allgemeine Deutsche Fahrradclub ADFC Noten an Deutschlands Städte und Gemeinden. Um es kurz machen: Das Münchner Umland - bei anderen Rankings wie Lebensqualität, Wirtschaftskraft und Immobilienpreisen sonst immer ganz vorne dabei - schneidet in puncto Fahrradfreundlichkeit eher nicht so gut ab. Allein Oberhaching schafft es mit einer 2,96 gerade noch aufs Treppchen. Grünwald dagegen: Mit einer 4,4 nahezu durchgefallen. Aber klar: Nirgendwo sonst ist die Sportwagen- und SUV-Dichte so groß.",
+ "An dieser Stelle soll aber die Rede sein von einer anderen Rangliste, wonach Marco Buschmann, der Bundesjustizminister von der FDP, der \"fleißigste deutsche Politiker\" ist, gefolgt von seiner weithin unbekannten Parteifreundin Bettina Stark-Watzinger (das ist die Bundesbildungsministerin) und - allerdings schon mit weitem Abstand - Außenministerin Annalena Baerbock von den Grünen. Bundeskanzler Olaf Scholz kommt dagegen, als erster SPDler, nur auf Platz 13 und Finanzminister Christian Lindner gar nur auf den 15. Platz. Ausgewertet wurden für die Erhebung sämtliche Aktivitäten aller Bundestagsabgeordneten, also Redezeiten, Anfragen, Anträge und dergleichen - Zwischenrufe und Handyzocken ausgenommen.",
+ "Das Ranking bricht nach Lindner ab, was rücksichtsvoll gegenüber den übrigen 721 Abgeordneten ist. Wer sich die Mühe machen will, kann aber selbst ausrechnen, auf welchen Plätzen etwa die Abgeordneten Florian Hahn, Anton Hofreiter und Gerold Otten gelandet sind, also jene drei, die in Berlin den Landkreis München vertreten. Investigativ, wie man uns kennt, haben wir nachgeschaut und siehe da: Grünen-Apologet Hofreiter ist, trotz oder gerade wegen seines Rauswurfs aus der ersten Reihe, mit gezählten 1922 Aktivitäten der unangefochtene Streber.",
+ "CSU-Mann Hahn kommt dagegen nur auf 257, aber der ist ja auch frisch verliebt. Damit ist Hahn aber immer noch weit fleißiger als drei andere Florians: etwa sein Parteifreund Florian Müller (52 Aktivitäten) und der Münchner Ex-Sozi Florian Post (74), vom rheinland-pfälzischen Florian Gerster (7!), dieser faulen Socke, ganz zu schweigen. Auf die 355 Aktivitäten von AfD-Mann Otten hätte man dagegen gerne verzichtet."
+ ]
+ }
+ ]
+ },
"publishing_date": "2023-04-28 19:50:30+02:00",
"title": "Die Fleißigsten und Fahrradfreundlichsten im Landkreis München",
"topics": [
@@ -17,6 +33,17 @@
"authors": [
"Süddeutsche Zeitung"
],
+ "body": {
+ "summary": [],
+ "sections": [
+ {
+ "headline": [],
+ "paragraphs": [
+ "Nach Angaben chilenischer Medien ist der konservative Ex-Präsident Sebastian Piñera, 74, bei einem Hubschrauberunglück ums Leben gekommen. Wie die Zeitung La Nación am Dienstag unter Berufung auf diplomatische Kreise berichtete, stürzte der Helikopter in den Lago Ranco in der zentralchilenischen Region Los Ríos ab. Auch die chilenische Zeitung La Tercera berichtete kurz darauf vom Tod des Politikers, der Chile in zwei Amtszeiten von 2010 bis 2014 und von 2018 bis 2022 regiert hatte."
+ ]
+ }
+ ]
+ },
"publishing_date": "2024-02-06 21:19:20+01:00",
"title": "Ex-Präsident stirbt bei Hubschrauberabsturz",
"topics": [
diff --git a/tests/resources/parser/test_data/de/SpiegelOnline.json b/tests/resources/parser/test_data/de/SpiegelOnline.json
index 0eb98c8cd..df3e8cdfd 100644
--- a/tests/resources/parser/test_data/de/SpiegelOnline.json
+++ b/tests/resources/parser/test_data/de/SpiegelOnline.json
@@ -3,14 +3,6 @@
"authors": [
"DER SPIEGEL"
],
- "publishing_date": "2023-04-28 20:15:23+02:00",
- "title": "Silicon Valley Bank: Federal Reserve räumt Versäumnisse bei Aufsicht ein",
- "topics": [
- "Wirtschaft",
- "Unternehmen",
- "USA",
- "Banken"
- ],
"body": {
"summary": [
"Auf über 100 Seiten hat die Federal Reserve den Zusammenbruch der Silicon Valley Bank analysiert – und Mängel bei Überwachung und Regulierung festgestellt. Künftig müsse man schneller Risiken und Schwächen ausmachen können."
@@ -34,6 +26,14 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-04-28 20:15:23+02:00",
+ "title": "Silicon Valley Bank: Federal Reserve räumt Versäumnisse bei Aufsicht ein",
+ "topics": [
+ "Wirtschaft",
+ "Unternehmen",
+ "USA",
+ "Banken"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/de/Stern.json b/tests/resources/parser/test_data/de/Stern.json
index 3172211d5..945f22ed9 100644
--- a/tests/resources/parser/test_data/de/Stern.json
+++ b/tests/resources/parser/test_data/de/Stern.json
@@ -3,25 +3,6 @@
"authors": [
"Laura Eßlinger"
],
- "publishing_date": "2023-04-28 19:09:00+02:00",
- "title": "Statt Paypal & Co.: So könnte Europas neues Bezahlsystem die US-Konkurrenz schlagen",
- "topics": [
- "Europa",
- "Apple",
- "Zahlungssystem",
- "PayPal",
- "Bezahlsystem",
- "Deutschland",
- "EU",
- "SEPA",
- "Frankreich",
- "Brühl",
- "MasterCard Incorporated",
- "Belgien",
- "Handelsblatt",
- "Unternehmensberatung",
- "Universität Frankfurt"
- ],
"body": {
"summary": [
" Europas Banken wollen beim Zahlungsverkehr unabhängiger von US-Firmen wie Paypal, Visa oder Apple werden. Mit EPI bringen sie bald ein neues Bezahlsystem an den Markt. Doch um mithalten zu können, muss es die Konkurrenz in drei Punkten schlagen.\n "
@@ -61,6 +42,25 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-04-28 19:09:00+02:00",
+ "title": "Statt Paypal & Co.: So könnte Europas neues Bezahlsystem die US-Konkurrenz schlagen",
+ "topics": [
+ "Europa",
+ "Apple",
+ "Zahlungssystem",
+ "PayPal",
+ "Bezahlsystem",
+ "Deutschland",
+ "EU",
+ "SEPA",
+ "Frankreich",
+ "Brühl",
+ "MasterCard Incorporated",
+ "Belgien",
+ "Handelsblatt",
+ "Unternehmensberatung",
+ "Universität Frankfurt"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/de/Tagesschau.json b/tests/resources/parser/test_data/de/Tagesschau.json
index b80e8a19a..e61f78ccd 100644
--- a/tests/resources/parser/test_data/de/Tagesschau.json
+++ b/tests/resources/parser/test_data/de/Tagesschau.json
@@ -3,13 +3,6 @@
"authors": [
"Christin Jordan"
],
- "publishing_date": "2023-04-28 17:23:42.981000+02:00",
- "title": "Ausschuss zur Ahrtal-Flut: Zwei Rücktritte - und viele offene Fragen",
- "topics": [
- "Ahrtal",
- "Flut",
- "Untersuchungsausschuss"
- ],
"body": {
"summary": [
" Nach 42 Sitzungen hat der Untersuchungsausschuss zur Flutkatastrophe im Ahrtal die Beweisaufnahme beendet. Was bleibt - außer zwei Rücktritten und schweren Vorwürfen gegen Verantwortliche? \n "
@@ -60,6 +53,13 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-04-28 17:23:42.981000+02:00",
+ "title": "Ausschuss zur Ahrtal-Flut: Zwei Rücktritte - und viele offene Fragen",
+ "topics": [
+ "Ahrtal",
+ "Flut",
+ "Untersuchungsausschuss"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/de/Taz.json b/tests/resources/parser/test_data/de/Taz.json
index 0b95540d4..744f603e2 100644
--- a/tests/resources/parser/test_data/de/Taz.json
+++ b/tests/resources/parser/test_data/de/Taz.json
@@ -3,17 +3,6 @@
"authors": [
"Nicole Opitz"
],
- "publishing_date": "2023-04-28 18:41:00+02:00",
- "title": "Entwurf des Selbstbestimmungsgesetzes: Ein bisschen Fortschritt",
- "topics": [
- "Transgender",
- "LGBTQIA-Community",
- "Deutschland",
- "Politik",
- "Schwerpunkt",
- "taz",
- "tageszeitung"
- ],
"body": {
"summary": [
"Das alte, diskriminierende Transsexuellengesetz ist endlich bald Geschichte. Das neue Gesetz sollte nicht weiter verwässert werden."
@@ -39,6 +28,17 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-04-28 18:41:00+02:00",
+ "title": "Entwurf des Selbstbestimmungsgesetzes: Ein bisschen Fortschritt",
+ "topics": [
+ "Transgender",
+ "LGBTQIA-Community",
+ "Deutschland",
+ "Politik",
+ "Schwerpunkt",
+ "taz",
+ "tageszeitung"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/de/WAZ.json b/tests/resources/parser/test_data/de/WAZ.json
index 3e96aa530..3565d309f 100644
--- a/tests/resources/parser/test_data/de/WAZ.json
+++ b/tests/resources/parser/test_data/de/WAZ.json
@@ -3,6 +3,17 @@
"authors": [
"Florian Peters"
],
+ "body": {
+ "summary": [
+ "\t\t\t\tWitten. \n\t\t\t\tZum zweiten Mal sind die Food-Trucks nach Witten gekommen. Die Besucher konnten sich über alle Kontinente schlemmen. Was gab es auf die Gabel?\n\t\t\t"
+ ],
+ "sections": [
+ {
+ "headline": [],
+ "paragraphs": []
+ }
+ ]
+ },
"publishing_date": "2023-06-19 12:52:00+02:00",
"title": "Hitze dämpft den Appetit beim Street Food Festival in Witten",
"topics": [
@@ -16,17 +27,6 @@
"Kultur",
"Reise",
"Fotostrecke"
- ],
- "body": {
- "summary": [
- "\t\t\t\tWitten. \n\t\t\t\tZum zweiten Mal sind die Food-Trucks nach Witten gekommen. Die Besucher konnten sich über alle Kontinente schlemmen. Was gab es auf die Gabel?\n\t\t\t"
- ],
- "sections": [
- {
- "headline": [],
- "paragraphs": []
- }
- ]
- }
+ ]
}
}
diff --git a/tests/resources/parser/test_data/fr/LeMonde.json b/tests/resources/parser/test_data/fr/LeMonde.json
index 7e8e9a813..efc94f42e 100644
--- a/tests/resources/parser/test_data/fr/LeMonde.json
+++ b/tests/resources/parser/test_data/fr/LeMonde.json
@@ -3,17 +3,6 @@
"authors": [
"Le Monde"
],
- "publishing_date": "2023-08-30 12:52:08+00:00",
- "title": "Sophie Binet met en garde Emmanuel Macron sur la « gravité de la situation dans le pays »",
- "topics": [
- "Économie",
- "Politique",
- "Emmanuel Macron",
- "Syndicats",
- "Social",
- "Économie française",
- "CGT"
- ],
"body": {
"summary": [],
"sections": [
@@ -28,6 +17,17 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-08-30 12:52:08+00:00",
+ "title": "Sophie Binet met en garde Emmanuel Macron sur la « gravité de la situation dans le pays »",
+ "topics": [
+ "Économie",
+ "Politique",
+ "Emmanuel Macron",
+ "Syndicats",
+ "Social",
+ "Économie française",
+ "CGT"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/na/TheNamibian.json b/tests/resources/parser/test_data/na/TheNamibian.json
index dbc9711c8..c072f5c58 100644
--- a/tests/resources/parser/test_data/na/TheNamibian.json
+++ b/tests/resources/parser/test_data/na/TheNamibian.json
@@ -3,8 +3,6 @@
"authors": [
"admin"
],
- "publishing_date": "1970-01-01 00:00:00+00:00",
- "title": "Newborn baby's body found at coastal dump",
"body": {
"summary": [],
"sections": [
@@ -27,6 +25,8 @@
]
}
]
- }
+ },
+ "publishing_date": "1970-01-01 00:00:00+00:00",
+ "title": "Newborn baby's body found at coastal dump"
}
}
diff --git a/tests/resources/parser/test_data/uk/TheGuardian.json b/tests/resources/parser/test_data/uk/TheGuardian.json
index 9d9e2e240..d45135185 100644
--- a/tests/resources/parser/test_data/uk/TheGuardian.json
+++ b/tests/resources/parser/test_data/uk/TheGuardian.json
@@ -7,16 +7,6 @@
"Jennifer Rankin",
"Philip Oltermann"
],
- "publishing_date": "2023-05-15 11:50:54+00:00",
- "title": "Russia-Ukraine war live: Sunak tells Zelenskiy UK will train pilots but supplying fighter jets to Kyiv is not ‘straightforward’",
- "topics": [
- "Ukraine",
- "Russia",
- "Europe",
- "World news",
- "Volodymyr Zelenskiy",
- "Vladimir Putin"
- ],
"body": {
"summary": [
"Ukraine president meets British prime minister in UK to discuss supply of fighter jets and other military aid"
@@ -27,6 +17,16 @@
"paragraphs": []
}
]
- }
+ },
+ "publishing_date": "2023-05-15 11:50:54+00:00",
+ "title": "Russia-Ukraine war live: Sunak tells Zelenskiy UK will train pilots but supplying fighter jets to Kyiv is not ‘straightforward’",
+ "topics": [
+ "Ukraine",
+ "Russia",
+ "Europe",
+ "World news",
+ "Volodymyr Zelenskiy",
+ "Vladimir Putin"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/uk/TheIndependent.json b/tests/resources/parser/test_data/uk/TheIndependent.json
index c3fbf6d5f..08bccbbbc 100644
--- a/tests/resources/parser/test_data/uk/TheIndependent.json
+++ b/tests/resources/parser/test_data/uk/TheIndependent.json
@@ -3,15 +3,6 @@
"authors": [
"Jamie Braidwood"
],
- "publishing_date": "2023-08-14 09:17:08+00:00",
- "title": "Women’s World Cup LIVE: England news as Lionesses prepare for Australia semi-final",
- "topics": [
- "Women's World Cup",
- "Alessia Russo",
- "England women",
- "Lionesses",
- "Internal"
- ],
"body": {
"summary": [],
"sections": [
@@ -25,6 +16,15 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-08-14 09:17:08+00:00",
+ "title": "Women’s World Cup LIVE: England news as Lionesses prepare for Australia semi-final",
+ "topics": [
+ "Women's World Cup",
+ "Alessia Russo",
+ "England women",
+ "Lionesses",
+ "Internal"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/uk/TheTelegraph.json b/tests/resources/parser/test_data/uk/TheTelegraph.json
index 7e57c08c5..31cb43fa0 100644
--- a/tests/resources/parser/test_data/uk/TheTelegraph.json
+++ b/tests/resources/parser/test_data/uk/TheTelegraph.json
@@ -3,18 +3,6 @@
"authors": [
"Madeleine Howell"
],
- "publishing_date": "2023-08-30 16:45:00+01:00",
- "title": "The best heated clothes airers to save money and energy when drying laundry, from £40",
- "topics": [
- "EG General",
- "Clothes",
- "Standard",
- "Interiors",
- "Special exclusion",
- "telegraph reviews",
- "Home",
- "How to Save Money"
- ],
"body": {
"summary": [
"\t\t\tThe best heated clothes airers are a space-saving alternative to tumble dryers or clothes lines\n\t\t"
@@ -92,6 +80,18 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-08-30 16:45:00+01:00",
+ "title": "The best heated clothes airers to save money and energy when drying laundry, from £40",
+ "topics": [
+ "EG General",
+ "Clothes",
+ "Standard",
+ "Interiors",
+ "Special exclusion",
+ "telegraph reviews",
+ "Home",
+ "How to Save Money"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/uk/iNews.json b/tests/resources/parser/test_data/uk/iNews.json
index 4c07703fd..88185f6af 100644
--- a/tests/resources/parser/test_data/uk/iNews.json
+++ b/tests/resources/parser/test_data/uk/iNews.json
@@ -3,16 +3,6 @@
"authors": [
"Michael Hincks"
],
- "publishing_date": "2023-08-30 00:55:49+00:00",
- "title": "US Open 2023 results: Andy Murray among six British players to record first-round wins without dropping a set",
- "topics": [
- "Andy Murray",
- "Cameron Norrie",
- "Dan Evans",
- "Jack Draper",
- "Katie Boulter",
- "US Open"
- ],
"body": {
"summary": [
"Boulter, Burrage, Draper, Evans, Murray and Norrie all won to advance to the second round at the US Open"
@@ -50,6 +40,16 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-08-30 00:55:49+00:00",
+ "title": "US Open 2023 results: Andy Murray among six British players to record first-round wins without dropping a set",
+ "topics": [
+ "Andy Murray",
+ "Cameron Norrie",
+ "Dan Evans",
+ "Jack Draper",
+ "Katie Boulter",
+ "US Open"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/us/APNews.json b/tests/resources/parser/test_data/us/APNews.json
index e5c667f9a..22a780c09 100644
--- a/tests/resources/parser/test_data/us/APNews.json
+++ b/tests/resources/parser/test_data/us/APNews.json
@@ -3,13 +3,6 @@
"authors": [
"ociated Press"
],
- "publishing_date": "2023-04-28 17:40:08+00:00",
- "title": "Mexico's economy grew 1.1% in 1st quarter, 3.8% year on year",
- "topics": [
- "Mexico",
- "Mexico City",
- "Latin America"
- ],
"body": {
"summary": [],
"sections": [
@@ -23,35 +16,20 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-04-28 17:40:08+00:00",
+ "title": "Mexico's economy grew 1.1% in 1st quarter, 3.8% year on year",
+ "topics": [
+ "Mexico",
+ "Mexico City",
+ "Latin America"
+ ]
},
"V1S1": {
"authors": [
"MATT O’BRIEN",
"AP Technology Writer"
],
- "publishing_date": "2023-07-11 15:19:21+00:00",
- "title": "Microsoft can move ahead with record $69 billion acquisition of Activision Blizzard, judge rules",
- "topics": [
- "Microsoft Corp",
- "Gaming",
- "Activision Blizzard Inc",
- "General news",
- "n",
- "United Kingdom",
- "Satya Nadella",
- "a",
- "Business",
- "U.S. news",
- "San Francisco",
- "f",
- "Technology",
- "Game consoles",
- "Meta Platforms Inc",
- "Sony Corp",
- "Amazon.com Inc",
- "U.S. News"
- ],
"body": {
"summary": [],
"sections": [
@@ -83,6 +61,28 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-07-11 15:19:21+00:00",
+ "title": "Microsoft can move ahead with record $69 billion acquisition of Activision Blizzard, judge rules",
+ "topics": [
+ "Microsoft Corp",
+ "Gaming",
+ "Activision Blizzard Inc",
+ "General news",
+ "n",
+ "United Kingdom",
+ "Satya Nadella",
+ "a",
+ "Business",
+ "U.S. news",
+ "San Francisco",
+ "f",
+ "Technology",
+ "Game consoles",
+ "Meta Platforms Inc",
+ "Sony Corp",
+ "Amazon.com Inc",
+ "U.S. News"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/us/CNBC.json b/tests/resources/parser/test_data/us/CNBC.json
index 5c09f56a6..fe448121c 100644
--- a/tests/resources/parser/test_data/us/CNBC.json
+++ b/tests/resources/parser/test_data/us/CNBC.json
@@ -3,21 +3,6 @@
"authors": [
"Greg Iacurci"
],
- "key_points": [
- "About a third of new crypto investors in 2022 used a friend's suggestion as their primary reason for buying, according to the FINRA Investor Education Foundation and NORC at the University of Chicago.",
- "Buying bitcoin, ethereum and other digital assets just on the basis of a friend's recommendation may lead to trouble, experts say.",
- "Investors may not understand the risk and volatility of cryptocurrency, or how it fits in a well-diversified investment portfolio."
- ],
- "publishing_date": "2023-04-28 18:23:00+00:00",
- "title": "31% of new crypto buyers influenced by friends. Here’s why that can be 'a horrible idea,' advisor says",
- "topics": [
- "Bitcoin",
- "Personal finance",
- "Bitcoin/USD Coin Metrics",
- "Lee Baker",
- "CFP",
- "business news"
- ],
"body": {
"summary": [],
"sections": [
@@ -56,6 +41,16 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-04-28 18:23:00+00:00",
+ "title": "31% of new crypto buyers influenced by friends. Here’s why that can be 'a horrible idea,' advisor says",
+ "topics": [
+ "Bitcoin",
+ "Personal finance",
+ "Bitcoin/USD Coin Metrics",
+ "Lee Baker",
+ "CFP",
+ "business news"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/us/FoxNews.json b/tests/resources/parser/test_data/us/FoxNews.json
index e156a1bf5..023e7fd25 100644
--- a/tests/resources/parser/test_data/us/FoxNews.json
+++ b/tests/resources/parser/test_data/us/FoxNews.json
@@ -3,16 +3,6 @@
"authors": [
"Aaron Kliegman"
],
- "publishing_date": "2023-04-26 14:20:55-04:00",
- "title": "House China Committee demands answers from FBI on Chinese police stations in US",
- "topics": [
- "china",
- "houseofreps",
- "congress",
- "fbi",
- "justice-department",
- "newyorkcity"
- ],
"body": {
"summary": [],
"sections": [
@@ -43,6 +33,16 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-04-26 14:20:55-04:00",
+ "title": "House China Committee demands answers from FBI on Chinese police stations in US",
+ "topics": [
+ "china",
+ "houseofreps",
+ "congress",
+ "fbi",
+ "justice-department",
+ "newyorkcity"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/us/FreeBeacon.json b/tests/resources/parser/test_data/us/FreeBeacon.json
index 8be973e41..ed78eb814 100644
--- a/tests/resources/parser/test_data/us/FreeBeacon.json
+++ b/tests/resources/parser/test_data/us/FreeBeacon.json
@@ -3,22 +3,6 @@
"authors": [
"Chuck Ross"
],
- "publishing_date": "2023-04-28 18:01:37+00:00",
- "title": "Soros Family Gives Early Financial Support to Montana 'Moderate' Jon Tester",
- "topics": [
- "2024 Election",
- "Bailout",
- "Court-Packing",
- "Defund the Police",
- "Democratic Donors",
- "George Soros",
- "Hypocrisy",
- "Jon Tester",
- "Keystone Pipeline",
- "Montana",
- "Montana Senate",
- "Second Amendment"
- ],
"body": {
"summary": [],
"sections": [
@@ -37,6 +21,22 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-04-28 18:01:37+00:00",
+ "title": "Soros Family Gives Early Financial Support to Montana 'Moderate' Jon Tester",
+ "topics": [
+ "2024 Election",
+ "Bailout",
+ "Court-Packing",
+ "Defund the Police",
+ "Democratic Donors",
+ "George Soros",
+ "Hypocrisy",
+ "Jon Tester",
+ "Keystone Pipeline",
+ "Montana",
+ "Montana Senate",
+ "Second Amendment"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/us/LATimes.json b/tests/resources/parser/test_data/us/LATimes.json
index eb5f011be..6bd2dd832 100644
--- a/tests/resources/parser/test_data/us/LATimes.json
+++ b/tests/resources/parser/test_data/us/LATimes.json
@@ -3,8 +3,6 @@
"authors": [
"Houston Mitchell"
],
- "publishing_date": "2023-06-26 12:00:29.055000+00:00",
- "title": "One hundred years at the Coliseum: Much more than a sports venue",
"body": {
"summary": [],
"sections": [
@@ -46,6 +44,8 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-06-26 12:00:29.055000+00:00",
+ "title": "One hundred years at the Coliseum: Much more than a sports venue"
}
}
diff --git a/tests/resources/parser/test_data/us/OccupyDemocrats.json b/tests/resources/parser/test_data/us/OccupyDemocrats.json
index 90d9ecfe0..f397306cb 100644
--- a/tests/resources/parser/test_data/us/OccupyDemocrats.json
+++ b/tests/resources/parser/test_data/us/OccupyDemocrats.json
@@ -3,16 +3,6 @@
"authors": [
"Stephanie Bazzle"
],
- "publishing_date": "2023-06-19 23:48:21+00:00",
- "title": "SCANDAL! GOP House Speaker in NC accused of blackmail and group sex",
- "topics": [
- "Jamie Liles Lassiter",
- "Right-wing hypocrisy",
- "Scott Lassiter",
- "sexual coercion",
- "Tim Moore",
- "Tricia Cotham"
- ],
"body": {
"summary": [],
"sections": [
@@ -36,6 +26,16 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-06-19 23:48:21+00:00",
+ "title": "SCANDAL! GOP House Speaker in NC accused of blackmail and group sex",
+ "topics": [
+ "Jamie Liles Lassiter",
+ "Right-wing hypocrisy",
+ "Scott Lassiter",
+ "sexual coercion",
+ "Tim Moore",
+ "Tricia Cotham"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/us/Reuters.json b/tests/resources/parser/test_data/us/Reuters.json
index 30bc71dc8..24cfbf31a 100644
--- a/tests/resources/parser/test_data/us/Reuters.json
+++ b/tests/resources/parser/test_data/us/Reuters.json
@@ -3,14 +3,6 @@
"authors": [
"Gopal Sharma"
],
- "publishing_date": "2023-04-25 12:26:15+00:00",
- "title": "Nepal says 'no proof' flydubai plane suffered bird strike",
- "topics": [
- "Aerospace & Defense",
- "Business",
- "Asia Pacific",
- "World"
- ],
"body": {
"summary": [
"KATHMANDU,\r\n April 25 (Reuters) - Nepal's civil aviation authority disputed on \r\nTuesday whether a flydubai plane had been hit by a bird strike in Nepali\r\n airspace, calling the United Arab Emirates carrier's account of the \r\nincident \"misleading\"."
@@ -29,6 +21,14 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-04-25 12:26:15+00:00",
+ "title": "Nepal says 'no proof' flydubai plane suffered bird strike",
+ "topics": [
+ "Aerospace & Defense",
+ "Business",
+ "Asia Pacific",
+ "World"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/us/TheGatewayPundit.json b/tests/resources/parser/test_data/us/TheGatewayPundit.json
index aad9cf33a..d3398a41c 100644
--- a/tests/resources/parser/test_data/us/TheGatewayPundit.json
+++ b/tests/resources/parser/test_data/us/TheGatewayPundit.json
@@ -3,8 +3,6 @@
"authors": [
"Cristina Laila"
],
- "publishing_date": "2023-04-28 18:15:11+00:00",
- "title": "New Plot Twist in Idaho Quadruple Murders Case: Surviving Roommate Agrees to Interview with Kohberger's Defense Lawyers | The Gateway Pundit | by Cristina Laila",
"body": {
"summary": [],
"sections": [
@@ -32,6 +30,8 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-04-28 18:15:11+00:00",
+ "title": "New Plot Twist in Idaho Quadruple Murders Case: Surviving Roommate Agrees to Interview with Kohberger's Defense Lawyers | The Gateway Pundit | by Cristina Laila"
}
}
diff --git a/tests/resources/parser/test_data/us/TheIntercept.json b/tests/resources/parser/test_data/us/TheIntercept.json
index f0ce73fb0..775cde9aa 100644
--- a/tests/resources/parser/test_data/us/TheIntercept.json
+++ b/tests/resources/parser/test_data/us/TheIntercept.json
@@ -3,12 +3,6 @@
"authors": [
"Ryan Devereaux"
],
- "publishing_date": "2023-04-28 15:54:24+00:00",
- "title": "An Insider’s View of the Montana Legislature’s Attacks on Trans Rep. Zooey Zephyr",
- "topics": [
- "Justice",
- "Politics"
- ],
"body": {
"summary": [
"The ACLU’s Keegan Medrano, a queer, Native advocate in Helena, said Zephyr’s expulsion was the culmination of months of attacks from Montana’s far right."
@@ -43,6 +37,12 @@
]
}
]
- }
+ },
+ "publishing_date": "2023-04-28 15:54:24+00:00",
+ "title": "An Insider’s View of the Montana Legislature’s Attacks on Trans Rep. Zooey Zephyr",
+ "topics": [
+ "Justice",
+ "Politics"
+ ]
}
}
diff --git a/tests/resources/parser/test_data/us/TheNation.json b/tests/resources/parser/test_data/us/TheNation.json
index 494a7c090..fffbea229 100644
--- a/tests/resources/parser/test_data/us/TheNation.json
+++ b/tests/resources/parser/test_data/us/TheNation.json
@@ -3,6 +3,60 @@
"authors": [
"Sarah Lazare"
],
+ "body": {
+ "summary": [
+ "In Des Moines, Iowa, the militant Local 90 is preparing for what could be the largest strike against a single company in US history."
+ ],
+ "sections": [
+ {
+ "headline": [],
+ "paragraphs": [
+ "In the early morning of April 12, members of International Brotherhood of Teamsters Local 90 rallied in the parking lot of the United Parcel Service distribution hub in Des Moines, Iowa, to prepare for what could be the largest strike against a single company in US history later this summer. The sun was shining as the union distributed “hot dogs for breakfast” to a crowd that started small but quickly ballooned to over 100, workers said. People were standing on trucks giving speeches to their coworkers. “We had workers talking about working six days a week, talking about getting written up for calling in sick,” said Tanner Fischer, the 26-year-old president of the local, who has been working for UPS since he was 18. ",
+ "Managers came outside to monitor the rally, Fischer said. “Some were standing 100 yards away, then moved to stand in the crowd and see what’s going on. They were making everyone uncomfortable.”",
+ "Surveillance is a common intimidation tactic used by management to make workers fearful about participating in protests. But instead of being cowed, Fischer fought back. “I filed an Unfair Labor Practice a few days later for them spying on our rally,” he told me with a smile, referring to a formal charge that an employer has violated the National Labor Relations Act. “It was easy. I did it myself. I wish I knew how to file a ULP when I was a steward.” (UPS corporate communications said of the incident, “We respect our employees’ rights to assemble and we comply with the NLRA.” The case is still ongoing.)",
+ "This episode illustrates the combative stance promised by Local 90’s new leadership, which hails from Teamsters for a Democratic Union (TDU), a movement within the union to build stronger democracy and militancy. That slate came to power in Local 90 at the beginning of this year, just in time to pick up the organizing for a nationwide UPS contract battle. The UPS contract with roughly 350,000 Teamsters is, according to the Teamsters, the biggest private-sector labor contract in North America, and it will expire on July 31. Negotiations are already underway. Beyond Des Moines, the new leadership of the international union came to power in March 2022 with the endorsement of the TDU, and has repeatedly declared, “We are not afraid” to strike.\t",
+ "Fischer doesn’t seem afraid either. We sat in the bar of a Hilton in downtown Chicago, where he had traveled for a regional grievance panel, part of the process for resolving deadlocked complaints that the employer violated the collective bargaining agreement. He looked young—he was carded when ordering a Bud Light—but he exuded confidence. Dressed in a gray Teamsters pullover, he had a trim beard and short light-brown hair, and politely repeated himself when I had trouble hearing him over the chatter of the establishment. But that polite demeanor gave way to exuberance—and increased volume—once we got going on the subject of workplace organizing.",
+ "There was much to discuss; the UPS contract isn’t his only battle. Local 90, based mostly in the Des Moines metro area, has six more contracts to negotiate in 2023, said Fischer, including one with a Pepsi bottling and distribution center, the local’s second-largest shop. And union leadership, he told me, is working through a backlog of hundreds of grievances, dating back to 2018. But out of 1,100 members, around 600 work at UPS, which guarantees that their fight will be a focal point in the months to come.",
+ "Iowa is a “right to work” state, which means that a worker can reap the benefits of a union contract without paying dues or being a member. While right-to-work status was designed to—and often does—obliterate union power, Local 90 has pushed back by aggressively organizing workers. According to Fischer, around 90 percent of UPS workers in the area are in the union. \n\t\t\t\n\t\t\tvar magazine_text_444984 = '';\n\t\t\tvar magazine_button_text_444984 = '';\n\t\t\tvar magazine_button_url_444984 = '';\n\t\t\tvar magazine_button_bg_color_444984 = '';\n\t\t\t\n\t\t\tvar is_user_logged_in = getCookie('SESSname');\t\t\t\tif( is_user_logged_in != null ){\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tmagazine_text_444984 = '
If you like this article, please give today to help fund The Nation’s work.
';\t\n\t\t\t\t\t\t\t\t\t\t\t\tmagazine_button_text_444984 = '';\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tmagazine_button_url_444984 = 'https://subscriptions.thenation.com/Nation_index?pk=G2A1CLT';\n\t\t\t\t\t\t\t\t\t\t\t\tmagazine_button_bg_color_444984 = '#dd3333';\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\n\t\t\t\t\t\t\n\t\t\tif( magazine_text_444984 !='' ){\t\t\t\t\n\t\t\t\tjQuery(\"#magazine_text_444984\").html(magazine_text_444984);\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( magazine_button_text_444984 !='' ){\t\t\t\t\n\t\t\t\tjQuery(\"#magazine_button_444984\").html(magazine_button_text_444984);\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( magazine_button_url_444984 !='' ){\t\t\t\t\n\t\t\t\tjQuery(\"#magazine_button_444984 a\").attr(\"href\",magazine_button_url_444984);\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( magazine_button_bg_color_444984 !='' ){\t\t\t\n\t\t\t\tjQuery(\"#magazine_button_444984 a input\").css(\"background\",magazine_button_bg_color_444984);\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t",
+ "Iowa is a “right to work” state, which means that a worker can reap the benefits of a union contract without paying dues or being a member. While right-to-work status was designed to—and often does—obliterate union power, Local 90 has pushed back by aggressively organizing workers. According to Fischer, around 90 percent of UPS workers in the area are in the union.",
"Alano De La Rosa holds the top office in Local 90 as the secretary-treasurer and is also a member of TDU. He told me over the phone that he attributes the success of the recent organizing drive “in large part to the fact people are activated by the potential of a nationwide work stoppage. We’ve even picked up members who were longtime nonmembers.”",
"In 2015, it was De La Rosa who first signed up Fischer, then a teenage UPS loader making $10.50 an hour, to be in the union. It helped that Fischer, who grew up in the Des Moines area, had some familiarity with the concept. “My uncle was in unions as a firefighter and an electrician, and I know he has done well with his life because he’s in a union,” Fischer said. But despite union protection, Fischer told me that at the beginning, “pay was very low. I always had to have another job while working there.”",
- "In February 2018, before the current contract, Fischer became a full-time driver, which meant higher pay: $18.75 an hour, he said. But the switch also had its challenges: He recalled the terror of “qualifying” when, during the first 30 days, a driver is tested on their ability to deliver a truck’s load within rigid time standards. “That was one of the most stressful things I’ve ever done,” he said. “On any given day you could be fired. It’s snowing, and I’m driving a truck, and I have to be done by five.”\t",
+ "In February 2018, before the current contract, Fischer became a full-time driver, which meant higher pay: $18.75 an hour, he said. But the switch also had its challenges: He recalled the terror of “qualifying” when, during the first 30 days, a driver is tested on their ability to deliver a truck’s load within rigid time standards. “That was one of the most stressful things I’ve ever done,” he said. “On any given day you could be fired. It’s snowing, and I’m driving a truck, and I have to be done by five.”",
"Like any UPS driver, Fischer has a trove of stories about misadventures and warm interactions with the public. “I’ve been chased by more dogs more times than I can count,” he said. “I’ve been stuck in snow and had the whole neighborhood dig me out. I had a customer buy me a portable air conditioner thing to keep me from overheating—probably the best customer gift I’ve ever gotten in my life.”",
"Jody Gelner, who has been working at UPS for 35 years and became a member of TDU around two years ago, serves on the executive board of Local 90. He said that he still “gets pretty emotional” about the interactions he has had with customers.",
- "One holiday season, early in his role as a full-time driver in the early 2000s, he had to deliver a kid-sized jeep with power wheels, “the type of toy that you give a little kid to ride around in with a battery,” he said. Gelner knew what was in the box because there was a picture on the side. ",
+ "One holiday season, early in his role as a full-time driver in the early 2000s, he had to deliver a kid-sized jeep with power wheels, “the type of toy that you give a little kid to ride around in with a battery,” he said. Gelner knew what was in the box because there was a picture on the side.",
"He was delivering it to a house with a big window. “I got out the back door and grabbed this big box with the picture of the toy,” he said. “And as I’m coming up to the door, I can see the kid jumping up and down and yelling with excitement. He was maybe 5 years old. And here comes the mom saying you just ruined the surprise for my kid’s Christmas.”",
"“She was furious,” he remembered with a laugh. “She tore into me. Now I’ve kind of learned that if the picture is on them, you hide them a little bit.”",
"But Gelner said the job also has its nasty side. “For upper management, it’s all down to seconds. You have 19 seconds to stop the truck. You have 18 or 19 seconds to get a box and get out of the truck. It’s so micromanaged.”",
"“Back in the day, I could run like a gazelle,” Gelner, who is 60 years old, said. “But now my knees hurt. I’ve been doing it so long. It wears on you.”",
- "UPS has multiple mechanisms to track workers’ progress throughout the day: The company knows when a worker opens their door, how long the door is open, when a package is scanned, and where a worker is driving. But it is the union’s position that workers are under no obligation to follow the company’s time parameters. “The company can have their standards of what they think we should do, but we as a union do not acknowledge their production standards,” Fischer said. “There’s nothing in our contract that says we have to work for their numbers.” ",
+ "UPS has multiple mechanisms to track workers’ progress throughout the day: The company knows when a worker opens their door, how long the door is open, when a package is scanned, and where a worker is driving. But it is the union’s position that workers are under no obligation to follow the company’s time parameters. “The company can have their standards of what they think we should do, but we as a union do not acknowledge their production standards,” Fischer said. “There’s nothing in our contract that says we have to work for their numbers.”",
"But there is plenty in the workers’ national contract that is distasteful. The 2018 contract that UPS employees are currently working under garnered a “no” vote of 54 percent. But the union’s leadership at the time—helmed by longtime President James Hoffa, whose father, Jimmy, led the union from 1957 to 1971—invoked a constitutional loophole that says union negotiators can impose a contract if fewer than half of the membership votes, unless that vote is two-thirds “no.”",
"That loophole had been vociferously opposed for years by TDU and other Teamsters, and in June 2021, delegates overturned it at the union’s national convention. And then, around five months later, the opposition slate headed by now–General President Sean O’Brien and General Secretary-Treasurer Fred Zuckerman won. Alexandra Bradbury wrote in Labor Notes about the election outcome, “It’s the first time in almost a quarter-century that a coalition backed by TDU has taken the driver’s seat in the international union.”",
"Now, under that leadership, Teamsters across the country are looking to overturn some of that contract’s biggest disappointments. Paramount is the 22.4 position, which was created in the 2018 contract. This designation creates a second—or lower—tier of drivers, justified by the fact that these positions “may include inside jobs.” But in reality, 22.4 workers often perform tasks that are nearly identical to that of regular full-time drivers, except they work on the weekend and receive lower pay. These 22.4 workers are also excluded from the already meager protections from excessive forced overtime that exist for regular full-time drivers. (Only 25 percent of drivers per center can be 22.4s, per the contract.)",
@@ -43,7 +43,7 @@
"Workers want more full-time inside jobs, and they are fed up with the company’s efforts to impose monitoring systems, like cameras and sensors. This investment in surveillance is especially offensive, workers say, given the lack of measures to keep workers cool, as temperatures climb in a changing climate and, in some cases, place their lives in danger. Workers, too, are watching with concern as UPS pursues automation at some facilities.",
"Fischer’s mother, Adrianne Fischer, is a part-time air package driver; she picks up packages early in the morning from the airport and delivers them to customers. Her son encouraged her to get a job at UPS almost five years ago after her divorce. “I was working three jobs at the time, and had two little boys at home,” she said. “Health insurance is so expensive. He knew I needed benefits.”",
"She has complaints related to Article 40 of the national contract, which says that, unlike regular part-time workers, she doesn’t get extra pay if she works six days in a row when hours are beneath a certain threshold. She is also only guaranteed three hours a day. This is despite the fact that air package workers are often delivering and moving highly valuable products, or even medically urgent items, like corneas for transplant.",
- "While the job gave her health insurance, Article 40 puts a cap on her quality of life, she said. “I’ve prepared myself financially for a potential strike. If this is what we need to do to have our voices heard, then we’ll do it.”\t",
+ "While the job gave her health insurance, Article 40 puts a cap on her quality of life, she said. “I’ve prepared myself financially for a potential strike. If this is what we need to do to have our voices heard, then we’ll do it.”",
"Fischer joined TDU around the forced passage of the 2018 contract. He said he remembers “being at a TDU conference in a room with people who were really pissed off. I was not totally understanding what was going on, but knowing we were getting screwed.”",
"Todd Hartsell, a senior steward in his building at the time, was the one who first pointed Fischer toward TDU, which was formed in 1976 to advance union democracy and root out corruption and mob influence (then an issue) from the union. Now a retired UPS worker, Hartsell has been a member of TDU for almost 40 years and was president of Local 90 in the mid-to-late ’90s. For three months, he said, he was on the national negotiating committee for the contract fight that resulted in the last nationwide UPS strike in 1997, which took place under the leadership of Ron Carey, who won the presidency with the support of TDU. The strike involved 185,000 workers and lasted for 15 days. Labor journalist Alex Press noted this year in Jacobin, “The United States has not seen a strike of that magnitude since.”",
"Hartsell said of Fischer, “Other people planted the seeds in me, the seeds of knowledge and information, and I shared it with him.”",
@@ -78,9 +78,18 @@
"Chris Christie quit his longshot bid for the 2024 Republican presidential nomination on Wednesday with all the political theater and rhetorical bombast that has historically characterized the grasping political career of this former federal prosecutor and governor of New Jersey. Yet, for all his foibles over the years, and for all the failings of his latest bid to position himself as a credible alternative to Donald Trump, Christie’s exit from the race still deals a blow both to his party and to the broader body politic.",
"Christie was the last high-profile GOP contender who was fighting for whatever remains of the soul of a Republican Party that, for all intents and purposes, has evolved into an authoritarian cult of personality with Trump as its center—posing what the former governor described as a real and present threat to democracy and national security.",
"Christie, a longtime Trump backer who ultimately came to his senses after Trump tried to overturn the 2020 election, mounted a 2024 campaign that aggressively challenged his party’s alarming deference to Trump, identified the former president as “a one-man crime wave,” and asserted that Trump had “earned every one” of his 91 criminal indictments. He argued that the other prominent contenders for the nomination—Florida Governor Ron DeSantis and former United Nations ambassador Nikki Haley—were unwilling to make an issue of the Republican front-runner’s criminality because they were “afraid to offend Donald Trump.” More importantly, Christie had the courage to demand that Republican voters answer the essential question: “Is this the type of conduct that we want from someone who wants to be president of the United States?”",
- "An energetic and often masterful communicator—the only serious Republican rival, in this regard, to Trump—Christie made himself heard during a seven-month campaign that often put him on debate stages but that rarely earned him much applause. The cold shoulder was the answer to his question. Polls now show that almost two-thirds of Republicans accept Trump’s “type of conduct” and want him to be the party’s nominee for the third time in a row. ",
+ "An energetic and often masterful communicator—the only serious Republican rival, in this regard, to Trump—Christie made himself heard during a seven-month campaign that often put him on debate stages but that rarely earned him much applause. The cold shoulder was the answer to his question. Polls now show that almost two-thirds of Republicans accept Trump’s “type of conduct” and want him to be the party’s nominee for the third time in a row.",
"Christie—unlike, say, DeSantis—recognized the reality that his campaign could not overcome Trump’s dominance of the party. So, with just a few days to go before the first Republican caucuses in Iowa, and just a few more days to go before the first Republican primary in New Hampshire, Christie quit—telling a previously scheduled town hall meeting in Windham, N.H., “I’ve always said that there came a point in time in this race where I couldn’t see a path to accomplishing that goal that I would get out. And it’s clear to me tonight that there isn’t a path for me to win the nomination, which is why I’m suspending my campaign tonight for president.”",
- "Christie, a relatively mainstream conservative, was under pressure to back the far more extreme Haley in the New Hampshire primary, where fresh polling suggests she is closing the gap on Trump. A CNN poll this week has Trump at 39 percent to 32 percent for Haley in the Granite State. That poll was one of several that had Christie running third in New Hampshire, pulling 12 percent. That relative show of strength inspired New Hampshire Governor Chris Sununu, a Haley backer, to urge Christie to “be a hero” and endorse the former UN ambassador."
+ "Christie, a relatively mainstream conservative, was under pressure to back the far more extreme Haley in the New Hampshire primary, where fresh polling suggests she is closing the gap on Trump. A CNN poll this week has Trump at 39 percent to 32 percent for Haley in the Granite State. That poll was one of several that had Christie running third in New Hampshire, pulling 12 percent. That relative show of strength inspired New Hampshire Governor Chris Sununu, a Haley backer, to urge Christie to “be a hero” and endorse the former UN ambassador.",
+ "But there’s nothing heroic about Haley’s candidacy. Yes, she is running against Trump, and she might even best him in New Hampshire. But she’s not willing to challenge Trump in a meaningful way. She signaled months ago that she would support Trump if he’s nominated this summer, as did DeSantis. And Haley has said that, if she were to somehow become president, she would pardon her Republican predecessor. That kind of talk led Christie to suggest, in a hot-mic moment on Wednesday evening, “She’s going to get smoked, and you and I both know it. She’s not up to this.”",
+ "It was a fair assessment of Haley’s candidacy, and of the even weaker bid by DeSantis.",
+ "Even now, as they desperately battle to catch up with Trump, or at least to be his chief rival, the frequent criticism of the former president from DeSantis and Haley is that he’s not right-wing enough on particular issues—as was illustrated in Wednesday night’s pathetic excuse for a debate between the pair.",
+ "Christie’s bottom line concerning the Republicans he eschewed endorsing on Wednesday was the right one: “Anyone who is unwilling to say [Trump] is unfit to be president of the United States is unfit to be president of the United States.”",
+ "Christie likes the spotlight, so it’s imaginable that he might yet align with a final “Stop Trump” bid by a former rival such as Haley. But, with the loud-mouthed New Jerseyan out of the race, it’s silly to imagine that another “name” candidate will echo his line of attack and thus risk offending Trump’s large and fiercely loyal base within the GOP. (Straight-talking former Arkansas Governor Asa Hutchinson, who has also been critical of Trump, is technically still in the running, but his campaign is so under the radar that many Iowans don’t even know he’s a candidate.) The Republican Party may be renewed at some point. But, for this election year, the fight is finished.",
+ "The first Republican president, Abraham Lincoln, spoke at the close of his 1861 inaugural address, at a time when the country was literally tearing itself apart, of his longing for a renewing moment when the sound of “the better angels of our nature” might again be heard.",
+ "Chris Christie is no angel.",
+ "But he was better than his rivals.",
+ "And now that he is out of the running, the last slim hope that responsible Republicans might right the course of their party in 2024 has been extinguished."
]
}
]
diff --git a/tests/resources/parser/test_data/us/TheNewYorker.json b/tests/resources/parser/test_data/us/TheNewYorker.json
index 2aa863df2..57d1cce7f 100644
--- a/tests/resources/parser/test_data/us/TheNewYorker.json
+++ b/tests/resources/parser/test_data/us/TheNewYorker.json
@@ -4,7 +4,9 @@
"Rachel Riederer"
],
"body": {
- "summary": [],
+ "summary": [
+ "Engineers might be able to protect Arctic ice by coating it with tiny glass bubbles. Should they?"
+ ],
"sections": [
{
"headline": [],
@@ -30,7 +32,7 @@
"Using bright materials to stay cool is intuitive enough. Drivers do it when they place foil sunshades behind the windshields of their cars. Cities such as New York and Los Angeles do it through “cool roof” programs, in which reflective coats of paint keep buildings cooler during the summer, helping to counteract the urban heat-island effect, which makes cities warmer than natural spaces. In theory, these principles could be applied more broadly. Research by Xin Xu, a materials scientist who trained at M.I.T., recently estimated that raising an area’s albedo by 0.01 could reduce its air temperature by 0.1 degrees Celsius (0.18 degrees Fahrenheit). An organization called MEER, founded by a Harvard microscope researcher, wants to combat warming by placing mirrors over land and water and pointing them skyward, to bounce back solar radiation. It’s possible that plants could be bred to have lower levels of chlorophyll and waxier surfaces, which could increase the albedo of croplands. But the idea of addressing climate change on a global scale, by intentionally intervening in the natural world—as opposed to by decreasing emissions—is deeply contentious. There are questions of safety, efficacy, and unintended consequences. Even if a technology is definitely safe, there are issues of governance and fairness: Who gets to decide to deploy it, and where?",
"One particularly controversial form of geoengineering is stratospheric aerosol injection—a type of solar-radiation management, or S.R.M., that would raise the entire planet’s albedo by spraying aerosolized sulfuric acid into the stratosphere, much as volcanoes do. In 2021, a Harvard group researching S.R.M. was poised to test the technology in northern Sweden, working with the country’s space agency, but protests from the Indigenous Sámi community and environmental groups shut the project down. “The way of thinking that humans are entitled to change and manipulate our surroundings has actually brought us into the climate crisis in the first place,” a leader of the Sámi Council told reporters at the time. Still, this February, a U.N. Environment Programme report argued that the impacts and risks of S.R.M. should be researched, in part, the organization’s chief scientist has said, because “these technologies are gaining traction as a possible last resort.” David Keith, who leads a new climate-systems-engineering initiative at the University of Chicago and is one of the most cited researchers of S.R.M., told me that the technology should not be used unilaterally, for example by “a toxic tech billionaire.” But he also said that universal agreement is unrealistic: “No technologies get decided by some global unanimous vote.”",
"Keith told me that, in his view, research into the safety and efficacy of glass microspheres is underwhelming, and that stratospheric aerosols are a more mature and impactful technology. But advocates of reflective coatings argue that their approaches would be preferable because they are localized, and might be more easily reversed. “If something unexpected were to happen in the environment as a result of our deployment, we could simply stop the deployment,” Zornetzer told me. “We can even clean it up if we had to. You can’t do that with these other methods.” Using reflective coatings on ice still amounts to actively tinkering with a natural system, but in a way that seems less totalizing than transforming the stratosphere—call it geoengineering lite. (Some proponents, including Field, prefer the term “climate restoration.”)",
- "After the field test at Utqiagvik, the priorities of Ice911 team members began to diverge. Field wanted to conduct more field tests as soon as possible; this meant pivoting away from Arctic sea ice to glaciers, on the theory that it would be easier to secure permits and community support on land, within clear borders. Last year, she officially founded the Bright Ice Initiative, a glacier-focussed group, and Johnson and Manzara came with her. Others, including Zornetzer, thought that they had more work to do before field testing, and wanted to stay focussed on Arctic ice, which they viewed as the most important lever that a surface-albedo project could pull. They ultimately renamed Ice911 the Arctic Ice Project and partnered with SINTEF, a research organization in Norway, to complete laboratory studies into the ecological impact of glass microspheres. Only after those have concluded will testing move into the field. “We have always used the phrase ‘Do no harm,’ ” Zornetzer told me. “But there was precious little or no solid ecological or toxicology work associated with the material—certainly not in the Arctic, with the species that live in the Arctic water column.”",
+ "After the field test at Utqiagvik, the priorities of Ice911 team members began to diverge. Field wanted to conduct more field tests as soon as possible; this meant pivoting away from Arctic sea ice to glaciers, on the theory that it would be easier to secure permits and community support on land, within clear borders. Last year, she officially founded the Bright Ice Initiative, a glacier-focussed group, and Johnson and Manzara came with her. Others, including Zornetzer, thought that they had more work to do before field testing, and wanted to stay focussed on Arctic ice, which they viewed as the most important lever that a surface-albedo project could pull. They ultimately renamed Ice911 the Arctic Ice Project and partnered with SINTEF, a research organization in Norway, to complete laboratory studies into the ecological impact of glass microspheres. Only after those have concluded will testing move into the field. “We have always used the phrase ‘Do no harm,’ ” Zornetzer told me. “But there was precious little or no solid ecological or toxicology work associated with the material—certainly not in the Arctic, with the species that live in the Arctic water column.”",
"Many of those who oppose geoengineering argue that even discussing it generates a sort of moral hazard, by creating a false impression that technological fixes will spare us the hard work of dropping fossil fuels. Manzara, Johnson, and Field aren’t convinced by that line of thinking. “We’ve known about climate change and carbon for how long?” Manzara said. “People are using solar, using renewables, but it’s not changing fast enough. This is something you could actually do.” Other opponents point out that even a test would be far-reaching and could pose serious risks. “You’re not going to be able to see the implications of these technologies until you deploy them at scale,” Panganga Pungowiyi, an organizer at the Indigenous Environmental Network, and a Native resident of St. Lawrence Island, in Alaska, told me. “And we only have one Earth.”",
"The Utqiagvik test opened both organizations up to outside criticism in a new way. In 2022, a group of Native Alaskan activists, including Pungowiyi, tried to attend an Arctic Ice Project fund-raiser at a country club in California. After they paid for a V.I.P. table, their money was refunded with a note saying that the event was sold out—but some of Pungowiyi’s friends, who were white, were able to buy individual tickets later. The group demonstrated outside instead, and delivered an open letter signed by several Native Alaskan groups. It argued that the coatings might interfere with wildlife, human health, boat motors, and air traffic.",
"Annette Eros, who became the C.E.O. of the Arctic Ice Project several months after the fund-raiser, told me that the table had been refunded because of space limitations. Still, she said, the decision not to accommodate the group was “disappointing.” She added in an e-mail that “the actions from last year do not reflect the philosophy and strategy of current Arctic Ice Project leadership.” Eros also said that “Rule 1” of the project is that it will collaborate with Indigenous communities well ahead of field testing. “We need to make sure that we’re respecting and learning from each other and have open lines of communication,” she said. But the Arctic Ice Project has not reached out to the groups involved in the protest.",
@@ -42,7 +44,7 @@
"Johnson and Manzara built their “glaciers” by digging four trenches, using a Bobcat forklift, on Manzara’s property. The bottom of each trench was lined with plastic and had a forty-five-degree incline. They filled the trenches with water, allowed the top to freeze, and then drained water from the deeper edge, leaving a foot-thick sheet of sloped ice. When we inspected the glaciers in St. Elmo, they were still mostly covered with snow, but ice peeked out around the edges. Thermometers above- and belowground recorded temperatures; albedometers hung from nearby metal poles. A weather station measured air pressure and wind. Kneeling in the snow, Manzara discovered that a car battery that had been powering one of several small data loggers had failed. He fetched a replacement from his workshop.",
"I leaned forward to inspect the ice. One glacier was smudged with carbon black, a powdery soot that settles on glaciers. “That’s what’s killing the glaciers in the Himalayas,” Manzara explained. Forests go up in smoke; humans continue to burn dirty fuels. “That makes a lot of soot, and it ends up right on top of the ice and snow, and the sun comes out, and it just melts.” It was the effect they were studying, but in reverse. Another glacier was also smudged with carbon black, but had been covered with white granules. I thought the soot-topped glacier had shrunk more than the others, but it was too soon to tell. The real question was whether the coated glacier would last longer.",
"We went back to Manzara’s kitchen table to regroup. Near a window that overlooked the pond, the glaciers, and a bird feeder busy with cardinals and woodpeckers, Field shared updates from the Bright Ice Initiative’s latest meetings with partners in India. This summer, if the permissions are finalized, the group will conduct a field test on a section of the six-square-mile Chhota Shigri Glacier, in the Hindu Kush region of the western Himalayas. “Chhota” means “small” in Hindi, but it is part of a network of thousands of glaciers that represent the third-largest block of freshwater on Earth, after the polar ice caps; hydrologists have nicknamed it the Third Pole. Unexpected melts put downstream communities at risk of floods, and the disappearance of the glaciers could deprive billions of people of freshwater. Soumitra Das leads the nonprofit Healthy Climate Initiative and lived in the foothills of the Himalayas before moving to the U.S. He is now working with Field and her colleagues, and estimates that the total cost of a three-year field trial, including materials, equipment, and compensation for local graduate students to assist with monitoring, would be about two hundred and fifty thousand dollars. He told me that Himalayan glaciers are so crucial to global sea levels, and thus to political stability, that the test has to go forward; he called the effort to save ice “our most important work to save humanity.”",
- "It stayed cold in Minnesota for another two weeks. On Easter Sunday, Manzara put on some rubber boots and walked to check on the glaciers. The temperature had got into the sixties the day before, and had finally been above freezing at night—the hillside’s snow had given way to spring mud. At the test site, the snowpack had melted, revealing the ice itself. The darkest glacier—the one covered in soot—was clearly shrinking fastest. But the dark glacier treated with granules was melting more slowly. The granules had stuck. The ice had a little time left. ♦"
+ "It stayed cold in Minnesota for another two weeks. On Easter Sunday, Manzara put on some rubber boots and walked to check on the glaciers. The temperature had got into the sixties the day before, and had finally been above freezing at night—the hillside’s snow had given way to spring mud. At the test site, the snowpack had melted, revealing the ice itself. The darkest glacier—the one covered in soot—was clearly shrinking fastest. But the dark glacier treated with granules was melting more slowly. The granules had stuck. The ice had a little time left. ♦"
]
}
]
diff --git a/tests/resources/parser/test_data/us/WorldTruth.json b/tests/resources/parser/test_data/us/WorldTruth.json
index 9494a5e6d..b0857e96d 100644
--- a/tests/resources/parser/test_data/us/WorldTruth.json
+++ b/tests/resources/parser/test_data/us/WorldTruth.json
@@ -6,26 +6,26 @@
{
"headline": [],
"paragraphs": [
- "We have all heard of antioxidants, but have we heard of the mother of all antioxidants? One that is the secret to prevent cancer, heart disease, aging, neurological issues and more? This single antioxidant has been studied in great depth yet most of us know nothing about it and many doctors have no idea how to address the epidemic of its deficiency in humans.",
- "We are of course talking about Glutathione (pronounced “gloota-thigh-own.”) This is a powerful detoxifier and immune booster and is crucial to a healthy life. Although the body does make some of its own Glutathione, poor food quality, pollution, toxic environments, stress, infections and radiation are all depleting out bodies glutathione.",
+ "We have all heard of antioxidants, but have we heard of the mother of all antioxidants? One that is the secret to prevent cancer, heart disease, aging, neurological issues and more? This single antioxidant has been studied in great depth yet most of us know nothing about it and many doctors have no idea how to address the epidemic of its deficiency in humans.",
+ "We are of course talking about Glutathione (pronounced “gloota-thigh-own.”) This is a powerful detoxifier and immune booster and is crucial to a healthy life. Although the body does make some of its own Glutathione, poor food quality, pollution, toxic environments, stress, infections and radiation are all depleting out bodies glutathione.",
"Glutathione is a simple molecule produced naturally in the body at all times. It’s a combination of three building blocks of protein or amino acids — cysteine, glycine and glutamine.",
"The best part of glutathione is that is contains sulfur chemical groups that work to trap all the bad things like free radicals and toxins such as mercury and heavy metals in our body then flush them out. This is especially important in our current world of heavy metal bombardment.",
"The body makes it, but it’s often not enough in our strenuous environment. Here are some food sources that either contain glutathione or its precursors to help the body produce more.",
- "Notice they are all healthy foods we often don’t get enough of? This is another big issue with our diets. We consume a lot of junk, meat, dairy and processed foods, items that clinically have been proven to be the number one causes of heart disease and illness yet we consume them in huge quantities. The key is to limit these and eat a lot of fresh, lively foods that provide nutrients and don’t ask the body to perform a mega job to digest.",
+ "Notice they are all healthy foods we often don’t get enough of? This is another big issue with our diets. We consume a lot of junk, meat, dairy and processed foods, items that clinically have been proven to be the number one causes of heart disease and illness yet we consume them in huge quantities. The key is to limit these and eat a lot of fresh, lively foods that provide nutrients and don’t ask the body to perform a mega job to digest.",
"You can also increase your exercise as glutathione production increases when you exercise. Breathing and sweating are also great ways to get rid of toxins in the body.",
"What makes glutathione so important and powerful is that it recycles antioxidants. When your body is dealing with free radicals, it is essentially passing them from one molecule to another. They might go from vitamin C to vitamin E to lipoic acid and then to glutathione where they are cooled off. Antioxidants are recycled at this point and the body can now regenerate another glutathione molecule to go back at it again.",
"Glutathione is crucial for helping your immune system fight chronic illness as it acts as the carrier of toxins out of your body. Like a fly trap, toxins stick to glutathione and they are carried to the bile into the stools and out of the body. Glutathione is also powerful enough that it has been shown to help in the treatment of AIDS greatly. The body is going to get in touch with oxidants and toxins, the more we can deal with those the better our body will be at staying strong, this is why glutathione is so important.",
"Dr. Mark Hyman has given 9 tips to increase your Glutathione levels. Check them out!",
- "1. Consume sulfur-rich foods. The main ones in the diet are garlic, onions and the cruciferous vegetables (broccoli, kale, collards, cabbage, cauliflower, watercress, etc.).",
- "2. Try bioactive whey protein. This is great source of cysteine and the amino acid building blocks for glutathione synthesis. As you know, I am not a big fan of dairy, but this is an exception — with a few warnings. The whey protein MUST be bioactive and made from non-denatured proteins (“denaturing” refers to the breakdown of the normal protein structure). Choose non-pasteurized and non-industrially produced milk that contains no pesticides, hormones, or antibiotics. Immunocal is a prescription bioactive non-denatured whey protein that is even listed in the Physician’s Desk Reference.",
- "3. Exercise boosts your glutathione levels and thereby helps boost your immune system, improve detoxification and enhance your body’s own antioxidant defenses. Start slow and build up to 30 minutes a day of vigorous aerobic exercise like walking or jogging, or play various sports. Strength training for 20 minutes 3 times a week is also helpful.",
+ "1. Consume sulfur-rich foods. The main ones in the diet are garlic, onions and the cruciferous vegetables (broccoli, kale, collards, cabbage, cauliflower, watercress, etc.).",
+ "2. Try bioactive whey protein. This is great source of cysteine and the amino acid building blocks for glutathione synthesis. As you know, I am not a big fan of dairy, but this is an exception — with a few warnings. The whey protein MUST be bioactive and made from non-denatured proteins (“denaturing” refers to the breakdown of the normal protein structure). Choose non-pasteurized and non-industrially produced milk that contains no pesticides, hormones, or antibiotics. Immunocal is a prescription bioactive non-denatured whey protein that is even listed in the Physician’s Desk Reference.",
+ "3. Exercise boosts your glutathione levels and thereby helps boost your immune system, improve detoxification and enhance your body’s own antioxidant defenses. Start slow and build up to 30 minutes a day of vigorous aerobic exercise like walking or jogging, or play various sports. Strength training for 20 minutes 3 times a week is also helpful.",
"One would think it would be easy just to take glutathione as a pill, but the body digests protein — so you wouldn’t get the benefits if you did it this way. However, the production and recycling of glutathione in the body requires many different nutrients and you CAN take these. Here are the main supplements that need to be taken consistently to boost glutathione. Besides taking a multivitamin and fish oil, supporting my glutathione levels with these supplements is the most important thing I do every day for my personal health.",
- "4. N-acetyl-cysteine. This has been used for years to help treat asthma and lung disease and to treat people with life-threatening liver failure from Tylenol overdose. In fact, I first learned about it in medical school while working in the emergency room. It is even given to prevent kidney damage from dyes used during x-ray studies.",
- "5. Alpha lipoic acid. This is a close second to glutathione in importance in our cells and is involved in energy production, blood sugar control, brain health and detoxification. The body usually makes it, but given all the stresses we are under, we often become depleted.",
- "6. Methylation nutrients (folate and vitamins B6 and B12). These are perhaps the most critical to keep the body producing glutathione. Methylation and the production and recycling of glutathione are the two most important biochemical functions in your body. Take folate (especially in the active form of 5 methyltetrahydrofolate), B6 (in active form of P5P) and B12 (in the active form of methylcobalamin).",
- "7. Selenium. This important mineral helps the body recycle and produce more glutathione.",
- "8. A family of antioxidants including vitamins C and E (in the form of mixed tocopherols), work together to recycle glutathione.",
- "9. Milk thistle (silymarin) has long been used in liver disease and helps boost glutathione levels.",
+ "4. N-acetyl-cysteine. This has been used for years to help treat asthma and lung disease and to treat people with life-threatening liver failure from Tylenol overdose. In fact, I first learned about it in medical school while working in the emergency room. It is even given to prevent kidney damage from dyes used during x-ray studies.",
+ "5. Alpha lipoic acid. This is a close second to glutathione in importance in our cells and is involved in energy production, blood sugar control, brain health and detoxification. The body usually makes it, but given all the stresses we are under, we often become depleted.",
+ "6. Methylation nutrients (folate and vitamins B6 and B12). These are perhaps the most critical to keep the body producing glutathione. Methylation and the production and recycling of glutathione are the two most important biochemical functions in your body. Take folate (especially in the active form of 5 methyltetrahydrofolate), B6 (in active form of P5P) and B12 (in the active form of methylcobalamin).",
+ "7. Selenium. This important mineral helps the body recycle and produce more glutathione.",
+ "8. A family of antioxidants including vitamins C and E (in the form of mixed tocopherols), work together to recycle glutathione.",
+ "9. Milk thistle (silymarin) has long been used in liver disease and helps boost glutathione levels.",
"Sources:",
"drhyman.com",
"articles.mercola.com",
From def18254875584d5927d4c5a14b320c76f4f584f Mon Sep 17 00:00:00 2001
From: Max Dallabetta
Date: Mon, 25 Mar 2024 14:06:50 +0100
Subject: [PATCH 10/13] black
---
scripts/generate_parser_test_files.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/scripts/generate_parser_test_files.py b/scripts/generate_parser_test_files.py
index 0e65d813d..9f8098395 100644
--- a/scripts/generate_parser_test_files.py
+++ b/scripts/generate_parser_test_files.py
@@ -123,7 +123,9 @@ def main() -> None:
for html in html_mapping.values():
versioned_parser = html.publisher.parser(html.crawl_date)
extraction = versioned_parser.parse(html.content)
- missing_attributes = set(arguments.attributes) - set(test_data.get(type(versioned_parser).__name__) or {})
+ missing_attributes = set(arguments.attributes) - set(
+ test_data.get(type(versioned_parser).__name__) or {}
+ )
new = {attr: value for attr, value in extraction.items() if attr in missing_attributes}
if not (entry := test_data.get(type(versioned_parser).__name__)):
test_data[type(versioned_parser).__name__] = new
From bab5b3d7c1fec38233476ef77cc7729418739acb Mon Sep 17 00:00:00 2001
From: Max Dallabetta
Date: Fri, 19 Apr 2024 19:17:19 +0200
Subject: [PATCH 11/13] update test cases and `WAZ`
---
src/fundus/publishers/de/waz.py | 4 +-
tests/resources/parser/test_data/ch/SRF.json | 21 +++++++++
.../test_data/de/BusinessInsiderDE.json | 19 ++++----
tests/resources/parser/test_data/de/FAZ.json | 47 +++++++++++++++++++
tests/resources/parser/test_data/de/WAZ.json | 26 ++++++++++
tests/resources/parser/test_data/lt/LRT.json | 26 ++++++++++
.../parser/test_data/us/BusinessInsider.json | 27 +++++++++++
7 files changed, 158 insertions(+), 12 deletions(-)
diff --git a/src/fundus/publishers/de/waz.py b/src/fundus/publishers/de/waz.py
index b7596c18a..b731b46fc 100644
--- a/src/fundus/publishers/de/waz.py
+++ b/src/fundus/publishers/de/waz.py
@@ -18,7 +18,7 @@ class V1(BaseParser):
VALID_UNTIL = datetime.date(2024, 2, 21)
_paragraph_selector: XPath = CSSSelector(".article__body > p")
_summary_selector: XPath = CSSSelector(".article__header__intro__text")
- _subheadline_selector = CSSSelector(".article__body > h3")
+ _subheadline_selector: XPath = CSSSelector(".article__body > h3")
@attribute
def body(self) -> ArticleBody:
@@ -55,4 +55,4 @@ class V1_1(V1):
namespaces={"re": "http://exslt.org/regular-expressions"},
)
_summary_selector = XPath("//div[@class='article-body'] /p[position()=1]")
- _subheadline_selector = CSSSelector(".article-body > h3")
+ _subheadline_selector = XPath("//div[@class='article-body'] / h3[not(text()='Auch interessant')]")
diff --git a/tests/resources/parser/test_data/ch/SRF.json b/tests/resources/parser/test_data/ch/SRF.json
index c6312a9c4..97c4148fb 100644
--- a/tests/resources/parser/test_data/ch/SRF.json
+++ b/tests/resources/parser/test_data/ch/SRF.json
@@ -4,6 +4,27 @@
"srf/hosb",
"kesm"
],
+ "body": {
+ "summary": [],
+ "sections": [
+ {
+ "headline": [],
+ "paragraphs": [
+ "Iran hat seine Drohung wahr gemacht und Israel direkt angegriffen. Mehr als 300 Drohnen und Raketen sind gemäss israelischem Militär auf Israel abgefeuert worden; der grösste Teil davon konnte abgefangen werden, auch dank der Hilfe anderer Staaten wie Frankreich, Grossbritannien, Jordanien und den USA. Wie zentral der Konflikt für die USA und die Biden-Regierung ist, weiss USA-Kenner Thomas Jäger.",
+ "SRF News: Mehrere Staaten haben Israel unterstützt und Drohnen und Raketen abgefangen. Wie wichtig war dabei die Unterstützung der USA?",
+ "Thomas Jäger: Diese war ausschlaggebend. Man wusste, dass ein solcher Angriff bevorsteht. Die amerikanischen Dienste hatten festgestellt, dass der Iran ballistische Raketen in Stellung gebracht hatte.",
+ "In den USA interessiert sich nur eine kleine Zahl von Wählerinnen und Wählern für die Kriege im Nahen Osten und der Ukraine. Aber diese Kreise haben insbesondere bei den Demokraten ein erhebliches Gewicht.",
+ "Israel hat noch nicht auf den iranischen Angriff reagiert. Wie viel hat diese Zurückhaltung mit den USA und ihrem Einfluss auf Israel zu tun?",
+ "Sehr viel. In der israelischen Regierung ist es vor allem die religiöse Rechte, die Druck macht, dass man hart zurückschlagen müsste. Die rechten israelischen Parteien könnten als einzige Netanjahu zu Fall bringen, wenn sie die Koalition verlassen. Die Regierung aber ist in einer komfortablen Lage: Sie hat den Angriff aus Iran abgewehrt und möchte auf der anderen Seite den Krieg in Gaza weiterführen. Auch Joe Biden hat Interesse daran, dass ein wenig Ruhe einkehrt und der Krieg nicht weiter eskaliert, damit er seine Unterstützung für Israel in den USA besser vertreten kann. Wenn der Krieg nicht nur in Gaza, sondern mit dem Iran geführt wird, dann braucht Israel die Unterstützung der USA.",
+ "Für die USA geht es einerseits darum, eine grosse Eskalation zwischen Iran und Israel zu verhindern, und andererseits darum, den Gazakrieg nicht weiter ausarten zu lassen. Wie kann die Biden-Regierung damit umgehen?",
+ "Sie wird auf der einen Seite weiter dafür sorgen, dass die humanitäre Unterstützung in Gaza intensiviert wird. Auf der anderen Seite wird man die Streitkräfte in der Region behalten, um den Iran abzuschrecken. Denn auch wenn der Iran nun sagt, man habe Vergeltung geübt, so hat letztlich die Abschreckung der Vereinigten Staaten seit Oktober 2023 mit dazu geführt, den Krieg dort einzuhegen, weil jeder weiss, dass die Vereinigten Staaten, wenn es dazu kommt, Israel unterstützen würden. Ebenfalls muss Biden berücksichtigen, dass der Ölpreis einigermassen im Rahmen bleibt. Denn der Ölpreis und letztlich der Benzinpreis sind wichtige Faktoren, wenn in den Vereinigten Staaten im Spätherbst gewählt wird.",
+ "Welchen Einfluss hat die aktuelle Situation auf den Wahlkampf von Joe Biden?",
+ "In den USA interessiert sich nur eine kleine Zahl von Wählerinnen und Wählern für die Kriege im Nahen Osten und der Ukraine. Aber diese Kreise haben insbesondere bei den Demokraten ein erhebliches Gewicht. In diesem Zusammenhang ist interessant, was Donald Trump gemacht hat: Man könnte meinen, die entsprechenden Wählerinnen und Wähler entscheiden sich sowieso für Biden, weil Trump eng vertraut ist mit Netanjahu. Trump aber hat Netanjahu unter Druck gesetzt und gesagt, dass der israelische Ministerpräsident die Situation im Gazastreifen beenden müsse, um diesen linken Wählern den Impuls zu geben: Meinetwegen braucht ihr Biden nicht zu wählen, bleibt zu Hause. Das wäre für Biden ein ernstes Problem.",
+ "Das Gespräch führte Peter Hanselmann."
+ ]
+ }
+ ]
+ },
"publishing_date": "2024-04-15 13:38:00+02:00",
"title": "«Die israelische Zurückhaltung hat viel mit den USA zu tun»"
}
diff --git a/tests/resources/parser/test_data/de/BusinessInsiderDE.json b/tests/resources/parser/test_data/de/BusinessInsiderDE.json
index dccf6c2c4..68a07324e 100644
--- a/tests/resources/parser/test_data/de/BusinessInsiderDE.json
+++ b/tests/resources/parser/test_data/de/BusinessInsiderDE.json
@@ -21,17 +21,16 @@
},
{
"headline": [
- "Statistiken, die die enorme Größe von Evergrande, Chinas sterbendem Immobilienriesen, verdeutlichen"
+ "Statistiken, die die enorme Größe von Evergrande, Chinas sterbendem Immobilienriesen, verdeutlichen",
+ "1. Evergrande besaß mehr als 1300 Immobilienprojekte in China.",
+ "2. Evergrande war mit 300 Milliarden Dollar (277 Milliarden Euro) verschuldet, so hoch wie kein anderes Unternehmen der Welt.",
+ "3. Mindestens zwölf Millionen Hausbesitzer lebten in Immobilien, die von Evergrande gebaut wurden.",
+ "4. Evergrande verfügt über genügend Land, um die gesamte Fläche von Manhattan zu bebauen.",
+ "5. Evergrande war indirekt für 3,8 Millionen Arbeitsplätze verantwortlich, was genug ist, um ganz Los Angeles zu beschäftigen.",
+ "6. Die Schuldenlast von Evergrande entsprach 1,6 Prozent des chinesischen BIP.",
+ "Evergrande wurde von den Hausbesitzern verunglimpft und fiel vor zwei Jahren in China in Ungnade."
],
- "paragraphs": [
- "Deine Privatsphäre-Einstellungen verhindern das Laden und Anzeigen aller externen Inhalte (z.B. Grafiken, Tabellen, Abo-Login) und Sozialen Netzwerke (z.B. Youtube, Twitter, Facebook, Instagram etc.) Zur Anzeige aktiviere bitte die Einstellungen in den Privatsphäre-Einstellungen.",
- "Deine Privatsphäre-Einstellungen verhindern das Laden und Anzeigen aller externen Inhalte (z.B. Grafiken, Tabellen, Abo-Login) und Sozialen Netzwerke (z.B. Youtube, Twitter, Facebook, Instagram etc.) Zur Anzeige aktiviere bitte die Einstellungen in den Privatsphäre-Einstellungen.",
- "Deine Privatsphäre-Einstellungen verhindern das Laden und Anzeigen aller externen Inhalte (z.B. Grafiken, Tabellen, Abo-Login) und Sozialen Netzwerke (z.B. Youtube, Twitter, Facebook, Instagram etc.) Zur Anzeige aktiviere bitte die Einstellungen in den Privatsphäre-Einstellungen.",
- "Deine Privatsphäre-Einstellungen verhindern das Laden und Anzeigen aller externen Inhalte (z.B. Grafiken, Tabellen, Abo-Login) und Sozialen Netzwerke (z.B. Youtube, Twitter, Facebook, Instagram etc.) Zur Anzeige aktiviere bitte die Einstellungen in den Privatsphäre-Einstellungen.",
- "Deine Privatsphäre-Einstellungen verhindern das Laden und Anzeigen aller externen Inhalte (z.B. Grafiken, Tabellen, Abo-Login) und Sozialen Netzwerke (z.B. Youtube, Twitter, Facebook, Instagram etc.) Zur Anzeige aktiviere bitte die Einstellungen in den Privatsphäre-Einstellungen.",
- "Deine Privatsphäre-Einstellungen verhindern das Laden und Anzeigen aller externen Inhalte (z.B. Grafiken, Tabellen, Abo-Login) und Sozialen Netzwerke (z.B. Youtube, Twitter, Facebook, Instagram etc.) Zur Anzeige aktiviere bitte die Einstellungen in den Privatsphäre-Einstellungen.",
- "Deine Privatsphäre-Einstellungen verhindern das Laden und Anzeigen aller externen Inhalte (z.B. Grafiken, Tabellen, Abo-Login) und Sozialen Netzwerke (z.B. Youtube, Twitter, Facebook, Instagram etc.) Zur Anzeige aktiviere bitte die Einstellungen in den Privatsphäre-Einstellungen."
- ]
+ "paragraphs": []
}
]
},
diff --git a/tests/resources/parser/test_data/de/FAZ.json b/tests/resources/parser/test_data/de/FAZ.json
index 3db892d55..153ec5e6b 100644
--- a/tests/resources/parser/test_data/de/FAZ.json
+++ b/tests/resources/parser/test_data/de/FAZ.json
@@ -56,6 +56,53 @@
"authors": [
"Johannes Ritter"
],
+ "body": {
+ "summary": [
+ "Russlands Geheimdienste nutzen Genf als Drehscheibe für Attentate in Europa. Die Regierung in Bern schaut tatenlos zu. Parteiübergreifend schlagen Sicherheitspolitiker Alarm."
+ ],
+ "sections": [
+ {
+ "headline": [],
+ "paragraphs": [
+ "Zwei Jahre nach Beginn des russischen Angriffskriegs gegen die Ukraine ist die Schweiz weiterhin ein großer Tummelplatz für russische Spione. Während andere westliche Länder mittlerweile mehr als 600 als Diplomaten getarnte Geheimdienstmitarbeiter zurück nach Russland geschickt haben, legte die Schweizer Regierung die Hände in den Schoß.",
+ "Nach Angaben des Schweizer Nachrichtendienstes (NDB) arbeiten in den diplomatischen und konsularischen Vertretungen in Genf und Bern nach wie vor rund 220 Russen. Davon sei mindestens ein Drittel für russische Nachrichtendienste tätig, schreibt der NDB in seinem Lagebericht „Sicherheit Schweiz 2023“.",
+ "„Europaweit gehört die Schweiz unter anderem aufgrund ihrer Rolle als Gaststaat internationaler Organisationen zu den Staaten, in denen am meisten russische Nachrichtendienstangehörige unter diplomatischer Tarnung eingesetzt werden“, heißt es in dem Bericht. Dieser stammt zwar aus dem vergangenen Jahr, ist aber immer noch hochaktuell."
+ ]
+ },
+ {
+ "headline": [
+ "Genf wurde zur Spionagedrehscheibe in Europa"
+ ],
+ "paragraphs": [
+ "Die größte aktuelle Bedrohung durch Spionage gehe von russischen Nachrichtendiensten aus, erklärte eine NDB-Sprecherin gegenüber der F.A.Z. Neben Cyberspionage erfolge ein erheblicher Teil der Informationsbeschaffung mit menschlichen Quellen. „Für diese Aktivitäten werden vor allem die russischen diplomatischen Vertretungen genutzt.“ Die Frage, ob die Schweiz in den vergangenen zwei Jahren enttarnte russische Spione ausgewiesen hat, ließen der NDB und das Schweizer Außenministerium unbeantwortet. Hinweise darauf gibt es bisher nicht.",
+ "Nach Einschätzung des Schweizer Historikers und Geheimdienstexperten Adrian Hänni, Forscher am Austrian Center for Intelligence, Propaganda and Security Studies (ACIPSS), könnten die russischen Geheimdienste ihre Aktivitäten in der Schweiz sogar ausgebaut haben. Viele andere Länder haben den russischen Spionen die Tür gewiesen – allein Deutschland dürfte inzwischen 170 bis 180 als Diplomaten getarnte Mitarbeiter verschiedener russischer Geheimdienste losgeworden sein. Deshalb liegt es aus Hännis Sicht nah, dass die Russen ihre Spionagetätigkeit nun an jenen Orten verstärken, wo sie nicht sonderlich behelligt werden. Dazu zählt neben Wien vor allem Genf.",
+ "Als UN-Sitz sowie als Standort Dutzender internationaler Institutionen, darunter der Welthandelsorganisation (WTO) und der Weltgesundheitsorganisation (WHO), habe sich die westschweizerische Stadt zu einer Spionagedrehscheibe in Europa entwickelt. Dazu trage auch deren günstige Lage im Herzen Europas bei. „Von Genf aus kann man sich mit Flügen im gesamten Schengenraum bewegen, ohne dass Pässe kontrolliert werden“, sagt Hänni im Gespräch mit der F.A.Z."
+ ]
+ },
+ {
+ "headline": [
+ "Havanna-Syndrom-Fälle in der amerikanischen UN-Vertretung in Genf"
+ ],
+ "paragraphs": [
+ "Hänni erinnert daran, dass die Schweiz auch im Zusammenhang mit dem Giftanschlag auf Sergej Skripal im Jahr 2018 eine Rolle spielte: Die mutmaßlichen Attentäter Alexander Mischkin und Anatolij Tschepiga hielten sich vor ihrem Angriff mehrmals in Genf auf. Zwei Agenten des russischen Militärnachrichtendienstes GRU sollten hernach die Spuren verwischen, wurden aber selbst ertappt, nachdem sie ein Auto voller Überwachungstechnik vor dem Hauptquartier der Organisation für das Verbot chemischer Waffen (OPCW) im schweizerischen Spiez geparkt hatten.",
+ "Auch in den jüngsten Enthüllungen zur Arbeit der russischen Dienste taucht Genf auf. Ein Rechercheverbund unter Führung des exilrussischen Investigativportals „The Insider“ will herausgefunden haben, dass russische Spezialagenten hinter den verdeckten Angriffen auf die zentralen Nervensysteme westlicher Diplomaten mittels Mikrowellen oder elektromagnetischer Energie stecken. Die darauf zurückzuführenden Symptome wie stechende Kopfschmerzen, Hörverlust, Schwindel und Übelkeit laufen unter dem Begriff „Havanna-Syndrom“, weil die ersten Fälle im Jahr 2016 in der kubanischen Hauptstadt auftraten.",
+ "Den Recherchen zufolge bereiteten die Agenten ihre Anschläge in Europa regelmäßig in Genf vor, getarnt als Englisch-Sprachschüler oder als Mitarbeiter der Ständigen Vertretung der Russischen Föderation bei den Vereinten Nationen, einem streng abgeschirmten, riesigen Komplex mit einem halben Dutzend Gebäuden. Eine Schlüsselfigur der auf Sabotage und Mordanschläge spezialisierten Kommandoeinheit mit der Nummer 29155 war demnach Egor Gordienko. Der GRU-Oberst war bis 2020 als Diplomat bei der WTO akkreditiert.",
+ "Auch in der amerikanischen UN-Vertretung in Genf hat es angeblich Havanna-Syndrom-Fälle gegeben. Auf diese Thematik angesprochen, zeigt sich die Sprecherin des Schweizer Nachrichtendienstes zugeknöpft: „Der NDB hat Kenntnis vom Havanna-Syndrom, kommentiert aber keine Medienberichte.“"
+ ]
+ },
+ {
+ "headline": [
+ "Ist eine schwache Spionageabwehr politisch gewollt?"
+ ],
+ "paragraphs": [
+ "Dass russische Agenten nach wie vor sehr stark in Genf vertreten sind, führt der Geheimdienstexperte Hänni auf die traditionell zurückhaltende Spionageabwehr der Schweiz zurück. „Der NDB ist ein kleiner und relativ schwacher Nachrichtendienst.“ Die nur 420 Mitarbeiter seien neben der Spionageabwehr auch mit der Bekämpfung von Terrorismus und Extremismus beschäftigt. Die Schwäche sei politisch gewollt. „Ein aktiveres Vorgehen gegen ausländische Geheimdienstmitarbeiter läuft dem Ziel der Regierung zuwider, als Vermittler in internationalen Konflikten zu agieren.“ Tatsächlich will der Außenminister Ignazio Cassis (FDP) im Einvernehmen mit dem ukrainischen Präsidenten Wolodymyr Selenskyj einen Friedensgipfel in der Schweiz organisieren. Doch der russische Außenminister Sergej Lawrow sieht das Land als „Spielball Kiews“ und erklärte Anfang März: „Wir zählen nicht auf die Dienste der Schweiz.“",
+ "Hänni hält das politisch gewollte „Laissez-faire“ der Schweiz gegenüber den zahlreichen russischen Spionen für falsch und rät zu einem Kurswechsel. Dass russische Agenten aus der Schweiz heraus Anschläge vorbereiteten, werfe sicherheitspolitische Fragen auf und schade dem Ruf des Landes im westlichen Ausland. Die Passivität der Regierung gefährde zudem die Sicherheit der in der Schweiz lebenden Kritiker des russischen Regimes, die der Kreml von Genf aus elektronisch und mittels Agenten überwachen lasse. Dass es in der Schweiz zu Tötungsoperationen kommt, erwartet Hänni indes nicht: „Die Russen wollen das Fass nicht zum Überlaufen bringen.“ Sonst gefährdeten sie ihre wichtige Operationsbasis in der Schweiz. Gerade weil die russischen Geheimdienste in Europa stärker denn je auf Genf als Standort angewiesen seien, könnte die Schweiz nach Hännis Ansicht offensiver vorgehen und enttarnte russische Spione des Landes verweisen.",
+ "Auch der ehemalige russische Diplomat Boris Bondarew kritisiert das Verhalten der Schweizer Regierung. Diese wolle Russland nicht verärgern. „Die Schweiz ist bereit für den Moment, in dem es wieder opportun ist, auch ranghohe Russen auf ihrem Boden willkommen zu heißen“, sagte Bondarew dem Züricher „Tages-Anzeiger“. Doch diese Haltung werde dem Charakter dieses Krieges und der Politik Putins nicht gerecht. Aus Protest gegen den russischen Angriffskrieg gegen die Ukraine war Bondarew im Mai 2022 von seinem Diplomatenposten in Genf zurückgetreten. Seither lebt er unter Polizeischutz an einem unbekannten Ort in der Schweiz.",
+ "Nach den jüngsten Enthüllungen über das Havanna-Syndrom und die Rolle Genfs als Drehkreuz für Attentäter haben Schweizer Sicherheitspolitiker parteiübergreifend Gegenmaßnahmen verlangt. Die russischen Machenschaften in der Schweiz seien nicht zu akzeptieren, hieß es von der Schweizerischen Volkspartei (SVP). Identifizierte Spione müssten ausgewiesen werden, forderte die Partei „Die Mitte“. Und die Sozialdemokraten mahnten an, dem Schweizer Nachrichtendienst mehr Kompetenzen und Ressourcen zu geben. Wenn die Schweiz nicht zu einem immer größeren Sicherheitsrisiko für ihre engsten Verbündeten und Partner werden solle, müsse sie jetzt handeln."
+ ]
+ }
+ ]
+ },
"publishing_date": "2024-04-17 10:24:31+00:00",
"title": "Die Schweiz ist ein großer Tummelplatz für russische Spione",
"topics": [
diff --git a/tests/resources/parser/test_data/de/WAZ.json b/tests/resources/parser/test_data/de/WAZ.json
index f73c6c43b..ffbceccbd 100644
--- a/tests/resources/parser/test_data/de/WAZ.json
+++ b/tests/resources/parser/test_data/de/WAZ.json
@@ -33,6 +33,32 @@
"authors": [
"Philipp Wahl"
],
+ "body": {
+ "summary": [
+ "Duisburg. Erste Visualisierungen zeigen, wie die Seilbahn in Duisburg aussehen könnten. Ebenfalls zu sehen: eine Haltestelle am Technologiequartier Wedau."
+ ],
+ "sections": [
+ {
+ "headline": [],
+ "paragraphs": [
+ "Zum Start der Immobilienmesse Mipim in Cannes startet Duisburgs städtische Entwicklungsgesellschaft Gebag am Montag eine neue Projekt-Internetseite zum Technologiequartier Wedau. Ein Hingucker der Seite, der viele Duisburgerinnen und Duisburger interessieren dürfte, ist eine erste Visualisierung der geplanten Seilbahn.",
+ "Die noch nicht finanzierte und noch nicht beschlossene „Urbane Seilbahn“ würden Stadtplaner und städtische Gesellschaften gerne umsetzen. Sie soll vom Duisburger Hauptbahnhof bis zur Fläche des Stadtentwicklungsprojekts 6-Seen-Wedau „fliegen“. Die Gebag hatte im Herbst eine Konzeptstudie zum Seilbahnbau vorgestellt, die für Aufsehen und Diskussionen über das Für und Wider sorgte."
+ ]
+ },
+ {
+ "headline": [
+ "Seilbahn Duisburg: Haltestelle an der ehemaligen Richthalle und Trassenverlauf"
+ ],
+ "paragraphs": [
+ "Die nun von der Gebag veröffentlichte Visualisierung zeigt, wie ein möglicher Haltepunkt am zukünftigen Technologie-Quartier-Wedau (TQW) aussehen könnte. Demnach sei es „denkbar, dass sich die Seilbahn-Haltestelle über dem Dach der ehemaligen Richthalle im Herzen der Projektfläche wiederfinden wird“, so die Gebag.",
+ "Neben allgemeinen Informationen zum Projekt TQW illustriert die Webseite auch den aktuell vorgesehenen Trassenverlauf vom Hauptbahnhof an den „Duisburger Dünen“ entlang über den Sportpark Duisburg bis hin zum Bahnhof Wedau, direkt an der Projektfläche 6-Seen-Wedau.",
+ "Auf www.technologie-quartier-wedau.de geht‘s aber vor allem um das geplante Technologiequartier, etwa in Visualisierungen und Erläuterungen zum Entwurf.",
+ "Auf der rund 30 Hektar großen Fläche des ehemaligen Ausbesserungswerks Wedau, die sich unmittelbar nördlich an das Stadtentwicklungsprojekt 6-Seen-Wedau anschließt, soll ein Technologie-Quartier geschaffen werden, das Impulse für die Gesamtentwicklung der Stadt und der Region setzen soll.",
+ "Dort sollen etwa Campus-Flächen für eine mögliche Ansiedlung der Ingenieurwissenschaftlichen Fakultät der Universität Duisburg-Essen (UDE) und ein „Wissens-Campus“ geschaffen werden, wo sich beispielsweise Forschungs- und Entwicklungsfirmen oder Start-ups ansiedeln können."
+ ]
+ }
+ ]
+ },
"publishing_date": "2024-03-08 17:59:39+00:00",
"title": "Erstes Bild: So könnte die Duisburger Seilbahn aussehen",
"topics": [
diff --git a/tests/resources/parser/test_data/lt/LRT.json b/tests/resources/parser/test_data/lt/LRT.json
index 353bb9474..b18242385 100644
--- a/tests/resources/parser/test_data/lt/LRT.json
+++ b/tests/resources/parser/test_data/lt/LRT.json
@@ -3,6 +3,32 @@
"authors": [
"Povilas Aleksandravičius"
],
+ "body": {
+ "summary": [
+ "Judo išdavystė atrodo keistai. Įprastai išdavystės taip nevyksta. Esame pripratę prie minties, kad Judas išdavė Jėzų dėl pinigų. Evangelijos pabrėžia Judo Iskarioto gobšumą. Jų autoriai pasakoja, kad būtent Judas piktinosi moterimi, kuri ant Jėzaus galvos išpylė brangius kvepalus: esą juos buvo galima parduoti ir gautus pinigus išdalinti vargšams."
+ ],
+ "sections": [
+ {
+ "headline": [],
+ "paragraphs": [
+ "Galbūt neatsitiktinai Judui buvo patikėta bendruomenės kasa. Bet Jonas su pasišlykštėjimu teigia, kad Judas iš tos kasos grobstė pinigus ir vargšai jam nerūpėjo (Jn 12, 6).",
+ "Vis dėlto egzegetai sutaria, kad 30 sidabrinių negalėjo būti Judo motyvas kaip tik dėl jo gobšumo: suma yra per menka, buvo kur kas daugiau galimybių pralobti, jei Jėzus liktų laisvėje. Išduoti dėl gobšumo neapsimokėjo. O ir Mato evangelijoje aprašyti Judo veiksmai, pasmerkus Jėzų, atrodo psichologiškai neadekvatūs banalaus gobšuolio mąstymui: „Kai išdavikas Judas pamatė, jog Jėzus pasmerktas, gailesčio pagautas, nunešė atgal auštiesiems kunigams ir seniūnams trisdešimt sidabrinių ir tarė: „Nusidėjau, išduodamas nekaltą kraują.“",
+ "Nusviedęs šventykloje pinigus, jis išbėgo ir pasikorė“ (Mt 27, 3–5). Kodėl pasielgta taip desperatiškai, reiktų ieškoti kitokių motyvų. 30 sidabrinių buvo simbolinis užmokestis, po juo slepiasi kita prasmė.",
+ "Keista ir tai, kad tuoj po išdavystės Judas prapuola. Juk jis, jei siekė grynai savanaudiškos naudos, būtų galėjęs išlošti labai daug tęsdamas išdavystę iki galo – aktyviai dalyvauti Jėzaus teismo procese, liudyti Kajafo ir Poncijaus Piloto akivaizdoje, įsiteikti miniai. Judas to nedarė. Jo planas buvo kitas.",
+ "Keistas yra Judo išdavystės ženklas – pabučiavimas (Mt 26, 49; Lk 22, 48). Taip neišduodama. Būtų užtekę ir atsainaus parodymo ranka. Tais laikais, panašiai kaip ir mūsų, pabučiavimas reiškė ypatingą prielankumą ir meilę, bučiuojama buvo ypatingomis progomis, siekiant parodyti ištikimybę ir atsidavimą, ryžtą niekada nepalikti. Pabučiuodamas Jėzų, Judas jam lyg norėjo pasakyti, kad atlieka meilės veiksmą, kažką svarbaus, intymaus, ypatingo, už ką Jėzus galiausiai bus dėkingas. Visa tai labai keista. Kokia to prasmė?",
+ "Kai kurie autoriai (pavyzdžiui, religijotyrininkas ir evangelijų tyrinėtojas Armandas Abécassis, parašęs intriguojančią knygą „Judas ir Jėzus: pavojingas ryšys“) teigia, kad Judą ir Jėzų siejo problemiškas, bet stiprus ryšys. Judas buvo labiausiai užsispyręs Jėzaus mokinys, konkrečiais veiksmais bandęs realizuoti jo mokymą, o kiti mokiniai nebuvo tokie ryžtingi. Tik Judas buvo nepajėgus suprasti tikrosios šio mokymo prasmės. Atkreipkime dėmesį, kad kitiems apaštalams Jėzų vadinant „Viešpačiu“ ir „Mesiju“, Judas į jį kreipiasi „rabi“ (Mt 26, 25.49), vadinasi, vertina jį tik kaip eilinį mokytoją. Vaikščiodamas su Jėzumi, Judas kažko nesuprato, kažko nepajuto.",
+ "Judas buvo aktyvus žmogus. Evangelistai jį vadina „Iskariotu“, o tai reiškia, kad jis priklausė politiniam sikarijų judėjimui. Šis judėjimas siekė pašalinti romėnų valdžią, atkurti Izraelio karalystę ir įtvirtinti žydų tautos galią regione. Taip jo dalyviai suprato Dievo valią, ir Judas entuziastingai bandė ją įgyvendinti. Jėzus, šis stebukladarys, gydantis ligonius, žodžiu numalšinantis audras, sugebantis pamaitinti minias ir tobulai jas valdyti, puikiai tiko būti Izraelio karaliumi.",
+ "Tik Jėzus to vengė. Kiekvieną kartą, kai buvo norima paskelbti jį karaliumi, jis pasišalindavo (Jn 6, 15). Ir tos jo kalbos: „Mano karalystė ne iš šio pasaulio“ (Jn 18, 36); „kas ciesoriaus, atiduokite ciesoriui, o kas Dievo – Dievui“ (Lk 20, 25); „Dievo karalystė neateina regimai“ (Lk 17, 20), etc. Jis ne tik nekurpė valdžios paėmimo planų, bet be galo kalbėjo apie meilę ir vidinę karalystę. Mokiniai nekantravo: „Viešpatie, gal tu šiuo metu atkursi Izraelio karalystę?“ (Apd 1, 6). Normalaus atsakymo jie nesulaukė. Taigi, reikėjo veikti.",
+ "Judas Iskariotas ėmėsi veiksmų. Reikėjo įstumti Jėzų į tokią padėtį, kurioje jis būtų priverstas parodyti savo galią. Reikėjo išduoti jį kareiviams, teismui ir miniai, kad kiltų pavojus jo gyvybei. Tada jis neturėsiąs kitos išeities: privalės savo antgamtine jėga, kuria sutramdė vėją ir jūrą, išblaškyti minią, sunaikinti romėnus, ir čia Judui ir kitiems mokiniams rasis proga atkurti Izraelio karalystę. Toks buvo planas.",
+ "Įvyko kitaip. Jėzus išties turėjo galią: „Gal manai, jog aš negaliu paprašyti savo Tėvą ir jis bemat neatsiųstų man per dvylika legionų angelų?!“ (Mt 26, 53). Tačiau jos nepanaudojo, nes į žemę nešė visai kitokio pobūdžio žinią: „Mano karalystė ne iš šio pasaulio. Jei mano karalystė būtų iš šio pasaulio, mano tarnai juk kovotų, kad nebūčiau atiduotas. Bet mano karalystė ne iš čia“ (Jn 18, 36). Jėzus leidosi suimamas, kankinamas, nužudomas. Taip jis prisiėmė kiekvieno iš mūsų kančią ir mirtį. Jis prisikėlė, kiekvienam iš mūsų suteikdamas naujos gyvybės – meile pulsuojančios gyvybės – galimybę. Judas to nenujautė, to nepamatė. Jo mąstymas nebuvo tam atviras.",
+ "Kokia yra Judo Iskarioto nuodėmė? Nurodinėti Dievui, ką jis turi daryti. Iš čia ir jo drama. Jis uoliai vykdė religinę savo laiko programą, neįtardamas, kad „įėjo į jį šėtonas“ (Jn 13, 27; Lk 22, 3). Skirtingai nuo kitų Jėzaus mokinių, Judas nesugebėjo atsiverti aukštesnei logikai, įsiveržusiai į žmonijos istoriją. Judo mąstymas veikė pagal šio pasaulio logiką, dievišką mokymą aiškinusią siaurai žmogiškomis kategorijomis, politinės galios ir pergalės prieš kitą idealais. Šie idealai buvo nuspalvinti religijos spalvomis: Judas manėsi esąs Dievo didvyris, savo veiksmais išprovokuosiantis Dievo veikimą Izraelyje. Jis išprovokavo Dievo ir savo mirtį.",
+ "Tai ne tik Judo, tai daugybės krikščionių drama. Mes skaitome Katekizmą, kalbame apie dorybes ir manomės žinantys, kokia yra Dievo valia. Bet jeigu mūsų religingumas nėra pranokęs pasaulio logikos, jeigu Dievo valią suvokiame kaip galią, kaip kito žmogaus atstūmimą, kaip politinę pergalę, jeigu Dievo valią vykdome nesigilindami į subtilų ir jautrų sielos gyvenimą, mes kartojame Judo veiksmus. Mes juos kartojame ir tada, kai fantazuojame apie visuomenėje karaliaujančią Bažnyčią, bet pamirštame, kad Kristaus Bažnyčia pirmiausia yra vidinė mūsų dvasios karalystė, auganti tik tiek, kiek mumyse yra meilės. Deja, neretai krikščionių mąstymas yra panašus į primityviausią politinę ideologiją.",
+ "Pernelyg dažnai religingi žmonės manosi vykdantys Dievo valią, o iš tiesų stojasi į Dievo vietą ir kliudo jam veikti. Tarsi judai, jie nurodinėja Dievui, ką jis turi daryti, nė nesuvokdami, kad taip dalyvauja piktojo planuose. Judo išdavystė tiems, kurie skaito Bibliją, yra kvietimas introspekcijai, sąžinės sąskaitai, bandymui atpažinti savo sieloje judo polinkius. Tai būtina sąlyga, mokantis atsiverti autentiškam dieviškajam veikimui.",
+ "Tiesa, Dievas „eina savo keliu“ (Mk 14, 21), net jeigu daugybė judų istorijoje jį išduoda. Jis keliasi iš mirties. Šio pasaulio logika gali žudyti jį kasdien, kas dieną jis prisikels, pulsuodamas nauja gyvybe. Galbūt atėjo laikas į mūsų žmogišką mąstymą įsileisti Dievo mąstymą, pakeisti galios troškimo logiką meilės logika? Tai klausimas kiekvienam."
+ ]
+ }
+ ]
+ },
"publishing_date": "2024-03-31 16:59:00+00:00",
"title": "Povilas Aleksandravičius. Kodėl Judas išdavė Jėzų?",
"topics": [
diff --git a/tests/resources/parser/test_data/us/BusinessInsider.json b/tests/resources/parser/test_data/us/BusinessInsider.json
index 72368ac99..7db3d7cde 100644
--- a/tests/resources/parser/test_data/us/BusinessInsider.json
+++ b/tests/resources/parser/test_data/us/BusinessInsider.json
@@ -3,6 +3,33 @@
"authors": [
"Amanda Krause"
],
+ "body": {
+ "summary": [
+ "Zendaya is widely recognized as a fashion superstar thanks to her daring and experimental outfits.",
+ "She's worn many of her boldest looks while promoting the \"Dune\" franchise since 2021.",
+ "Here's how we'd rank them from least to most daring."
+ ],
+ "sections": [
+ {
+ "headline": [
+ "Zendaya promoted \"Dune: Part Two\" in London while wearing a plum-colored suit.",
+ "She also kept things simple back in 2021 during a London screening of \"Dune.\"",
+ "The actor wore a similar style at the 2021 Venice International Film Festival.",
+ "For a \"Dune\" red carpet in London around that time, Zendaya wore a futuristic gown.",
+ "Her two-piece ensemble for the French premiere of \"Dune: Part Two\" stood out.",
+ "Another set she wore years earlier in Paris signified the start of Zendaya's daring \"Dune\" looks.",
+ "Fans will likely remember when the actor wore a top made from chains while in London.",
+ "Zendaya brought the \"naked\" trend back while attending the Venice International Film Festival screening of \"Dune.\"",
+ "The actor stunned during a \"Dune: Part Two\" photo shoot in Paris.",
+ "She showed lots of skin at the London premiere of the movie.",
+ "You couldn't miss Zendaya's outfit at the Mexico premiere of \"Dune: Part Two.\"",
+ "She stole the show at another \"Dune: Part Two\" event in Mexico City.",
+ "Her barely-there top at CinemaCon 2023 is one to be remembered."
+ ],
+ "paragraphs": []
+ }
+ ]
+ },
"publishing_date": "2024-02-14 16:15:30+00:00",
"title": "Every outfit Zendaya has worn to promote the 'Dune' franchise, ranked from least to most daring",
"topics": [
From 9e6868e86689830329ec187d8b83c6d3aada2876 Mon Sep 17 00:00:00 2001
From: Adrian Breiding
Date: Fri, 19 Apr 2024 20:10:26 +0200
Subject: [PATCH 12/13] update bi paragraph/subheadline selector
---
src/fundus/publishers/us/business_insider.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/fundus/publishers/us/business_insider.py b/src/fundus/publishers/us/business_insider.py
index 77469ca81..48a886cc5 100644
--- a/src/fundus/publishers/us/business_insider.py
+++ b/src/fundus/publishers/us/business_insider.py
@@ -16,7 +16,7 @@
class BusinessInsiderParser(ParserProxy):
class V1(BaseParser):
_summary_selector = CSSSelector("article ul[class^='summary-list'] > li")
- _subheadline_selector = CSSSelector("article h2")
+ _subheadline_selector = CSSSelector("article h2, div.slideshow-slide-container h2")
_paragraph_selector = XPath(
"""
//article
@@ -25,6 +25,8 @@ class V1(BaseParser):
//article
//div[contains(@class, 'content-lock-content')]
/div[contains(@class, 'premium-content')]
+ /p[not(contains(@class, 'disclaimer'))] |
+ //div[@class='slide-layout clearfix']
/p[not(contains(@class, 'disclaimer'))]
"""
)
From 607503df0c88bf20c0af95559007d3ff4f81009b Mon Sep 17 00:00:00 2001
From: Adrian Breiding
Date: Fri, 19 Apr 2024 20:11:10 +0200
Subject: [PATCH 13/13] reextract bi test data
---
.../parser/test_data/us/BusinessInsider.json | 140 ++++++++++++++++--
1 file changed, 127 insertions(+), 13 deletions(-)
diff --git a/tests/resources/parser/test_data/us/BusinessInsider.json b/tests/resources/parser/test_data/us/BusinessInsider.json
index 7db3d7cde..7d18e6913 100644
--- a/tests/resources/parser/test_data/us/BusinessInsider.json
+++ b/tests/resources/parser/test_data/us/BusinessInsider.json
@@ -10,23 +10,137 @@
"Here's how we'd rank them from least to most daring."
],
"sections": [
+ {
+ "headline": [],
+ "paragraphs": [
+ "Zendaya is a fashion superstar.",
+ "From her Met Gala looks to her street-style fashion, it seems impossible for her outfits to miss the mark.",
+ "And that's largely because she loves to take risks and experiment with out-there garments, many of which she's worn while promoting the \"Dune\" franchise.",
+ "Here's a look at those outfits, ranked from least to most daring."
+ ]
+ },
+ {
+ "headline": [
+ "Zendaya promoted \"Dune: Part Two\" in London while wearing a plum-colored suit."
+ ],
+ "paragraphs": [
+ "Designed by Roksanda, the three-piece suit included floor-length trousers, a knee-length skirt on top, and a long dress-style blazer worn with nothing underneath.",
+ "Zendaya's longtime stylist, Law Roach, pointed out in an Instagram story that she wore the ensemble before it hit the runway, as it's part of the designer's autumn/winter 2024 line.",
+ "The jacket looked particularly sharp on Zendaya, and its skirt and pants made for a unique combo. But while the outfit would be bold for some stars, it's a simple look for the \"Dune\" actor."
+ ]
+ },
+ {
+ "headline": [
+ "She also kept things simple back in 2021 during a London screening of \"Dune.\""
+ ],
+ "paragraphs": [
+ "She wore a white shirtdress with only two buttons clasped, pointed black pumps, and satin trousers with subtle stripes.",
+ "Though her top flowed and was worn half open, it was still pretty tame when compared to Zendaya's usual bold fashion."
+ ]
+ },
+ {
+ "headline": [
+ "The actor wore a similar style at the 2021 Venice International Film Festival."
+ ],
+ "paragraphs": [
+ "This time, her loose-fitting outfit included a black blazer worn over a white Valentino gown.",
+ "The latter piece was tied with a pink bow that added a pop of color, and it was crafted with a thigh-high slit that showed her black heels.",
+ "Though Zendaya looked stunning, it wasn't the most surprising or daring look from those worn during her \"Dune\" press tour."
+ ]
+ },
+ {
+ "headline": [
+ "For a \"Dune\" red carpet in London around that time, Zendaya wore a futuristic gown."
+ ],
+ "paragraphs": [
+ "The cream-colored, sequin-covered gown, designed by Rick Owens, had a sculpture-style neckline that made it entirely unique. It also had a single long sleeve, a mermaid skirt, and a short train.",
+ "Though it wasn't the most daring, it was extremely glamorous — especially when paired with Zendaya's slicked-back hairstyle, purple eye makeup, and diamond jewelry."
+ ]
+ },
+ {
+ "headline": [
+ "Her two-piece ensemble for the French premiere of \"Dune: Part Two\" stood out."
+ ],
+ "paragraphs": [
+ "An ambassador for Louis Vuitton, Zendaya wore a custom ensemble from the fashion house.",
+ "Its golden crop top had a thick, wrapped neckline that reached her chin, and its matching skirt featured a high waistband with wide pleated fabric beneath it.",
+ "The textured pieces showed plenty of skin, and the metallic colors matched the movie's aesthetic."
+ ]
+ },
+ {
+ "headline": [
+ "Another set she wore years earlier in Paris signified the start of Zendaya's daring \"Dune\" looks."
+ ],
+ "paragraphs": [
+ "The Alaïa ensemble featured two eggplant-colored pieces: a high-waisted skirt with small cutouts around the waist and a super-short crop top with long sleeves.",
+ "The latter piece was especially bold, rising above her chest at the sides underneath her arms."
+ ]
+ },
+ {
+ "headline": [
+ "Fans will likely remember when the actor wore a top made from chains while in London."
+ ],
+ "paragraphs": [
+ "Vivienne Westwood designed the daring garment, which was as much of an art piece as it was a fashion statement. She wore it with seemingly nothing underneath.",
+ "The rest of Zendaya's outfit included a mid-rise checkered skirt, cream-colored pumps, and an assortment of silver jewelry."
+ ]
+ },
+ {
+ "headline": [
+ "Zendaya brought the \"naked\" trend back while attending the Venice International Film Festival screening of \"Dune.\""
+ ],
+ "paragraphs": [
+ "Her sleeveless, form-fitting gown was custom-made by Balmain in a tan shade of leather that matched her skin tone, creating the illusion that she was naked on the red carpet.",
+ "It also had ruching across its bodice, a hip-high slit in its skirt, and a short train.",
+ "Zendaya completed the daring look with pointed heels, a statement snake-shaped necklace, and a wavy hairstyle."
+ ]
+ },
+ {
+ "headline": [
+ "The actor stunned during a \"Dune: Part Two\" photo shoot in Paris."
+ ],
+ "paragraphs": [
+ "Wearing Alaïa again, Zendaya sported a white gown with a bodice that wrapped around her like a snake.",
+ "Its skirt featured a similar silhouette that was short in front and longer in the back, revealing some skin and her white pointed pumps."
+ ]
+ },
+ {
+ "headline": [
+ "She showed lots of skin at the London premiere of the movie."
+ ],
+ "paragraphs": [
+ "She was photographed entering the event wearing a multicolored gown crafted from thin pieces of sheer brown fabric.",
+ "The garment, which also had pink and black lining, featured cutouts across the waist, a thigh-high slit, and thin straps across the neckline."
+ ]
+ },
+ {
+ "headline": [
+ "You couldn't miss Zendaya's outfit at the Mexico premiere of \"Dune: Part Two.\""
+ ],
+ "paragraphs": [
+ "Her multicolored, industrial-style outfit was custom-made by Torishéju.",
+ "It featured a halter crop top with 3D pieces along the neckline, fabric hanging down her back, and a mid-rise skirt with a vibrant red lining.",
+ "Not only was the ensemble entirely unique in design, but it also perfectly matched the vibe of the \"Dune\" franchise."
+ ]
+ },
+ {
+ "headline": [
+ "She stole the show at another \"Dune: Part Two\" event in Mexico City."
+ ],
+ "paragraphs": [
+ "But this time, she wore a daring custom look from Bottega Veneta.",
+ "The brown ensemble featured a standout skirt with a thick leather waistband and matching lining, and a high-neck, pullover-style crop top that revealed the underside of her chest.",
+ "She wore it with a bob hairstyle, pointed pumps, and a diamond anklet."
+ ]
+ },
{
"headline": [
- "Zendaya promoted \"Dune: Part Two\" in London while wearing a plum-colored suit.",
- "She also kept things simple back in 2021 during a London screening of \"Dune.\"",
- "The actor wore a similar style at the 2021 Venice International Film Festival.",
- "For a \"Dune\" red carpet in London around that time, Zendaya wore a futuristic gown.",
- "Her two-piece ensemble for the French premiere of \"Dune: Part Two\" stood out.",
- "Another set she wore years earlier in Paris signified the start of Zendaya's daring \"Dune\" looks.",
- "Fans will likely remember when the actor wore a top made from chains while in London.",
- "Zendaya brought the \"naked\" trend back while attending the Venice International Film Festival screening of \"Dune.\"",
- "The actor stunned during a \"Dune: Part Two\" photo shoot in Paris.",
- "She showed lots of skin at the London premiere of the movie.",
- "You couldn't miss Zendaya's outfit at the Mexico premiere of \"Dune: Part Two.\"",
- "She stole the show at another \"Dune: Part Two\" event in Mexico City.",
"Her barely-there top at CinemaCon 2023 is one to be remembered."
],
- "paragraphs": []
+ "paragraphs": [
+ "Louis Vuitton designed her daring outfit, which included baggy brown trousers and a gray vest top.",
+ "The latter piece wasn't as traditional as it seemed from the front. When she turned around, it was revealed that the garment was entirely backless and loose-fitting on its sides."
+ ]
}
]
},