Welcome back. A couple of minutes late, so real quick, Andy is a senior engineer here at Bloomberg and a member of our Python Guild who's responsible for spreading good practices across the firm. Also one of the engineers in our data license group. Over to you, Andy. OK, hello, and welcome to making multiple inheritance not work in Python. To be clear, if you think I'm going to tell you how to make multiple inheritance work in Python, that's another talk. This talk is intended to illustrate a couple techniques that might be helpful for various purposes, but not any particular examples that you should actually put to use. The techniques are what's being shown, not the examples. So before we can talk about multiple inheritance, we should probably cover inheritance. Inheritance is a mechanism of basing an object or class upon another object. That would be prototype or class-based inheritance, retaining a similar implementation. It comes from an initial implementation in Simula all the way back from 1965, and it's kind of been used ever since. When we talk about multiple inheritance and we try to say what the problem with it is, we quickly wind up with the diamond problem, which can be easily explained thusly or explained thusly, if not easily. You start with a base class. You create two inherited classes. From there, you create a new class that inherits from both, and then you try to reason about this. We had multiple inheritance in Python. In Python 2, we had the old style classes, and multiple inheritance worked like this. Class A, B, C, and D, just like the diamond. Define just like the diamond. Everyone has a constructor. Every constructor calls its base class constructors. And if you look at how this plays out, when we construct an instance of D, D calls B and C's constructors. B and C's constructors both calls A's constructors. But the problem is, B's constructor calls A's constructor, then C's constructor calls A's constructor, and you have to hope that that didn't mess up something that B's constructor did. And if you were in Python 2 old style classes, you just had to deal with that. Fortunately, that was a long time ago. When you get to Python 2.2, you got the new style classes, which in Python 3, we call classes. And that introduced something called the method resolution order. So if you write the same code in Python 3, you can go to D and you can look at DunderMRO. And DunderMRO will say that there's an order. And the order is D, B, C, A. And that's defined by something called the C3 linearization algorithm. Doesn't matter much what that algorithm is. It created an order for us, and the order makes some sense. It's more important that there is an order than the sensibilities of that order, because if we introduce super, then when we say D, just call whatever your super class constructor is, and C, and B, and A, and so on, then D calls its super class constructor, which turns out to be B, OK. C, B calls its super class constructor, which somewhat unintuitively, the first time you see this, turns out to be C, which, OK, fine. C calls its super class constructor, which turns out to be A, which is actually exactly what it expected. Everything gets called once, everything gets called, and it's actually a thing that can be managed, and can be managed successfully. If you want to figure out how to manage it successfully, go view one of the courses or classes on making multiple inheritance work. We're obviously going to be playing some games with this, so let's talk about where we're going to be playing those games. The first thing we're going to be playing with are class decorators. Class decorators were introduced in Python 2.6. Just like any other decorator, they take a callable, they return a callable. Who knows what they did to that callable along the way? Maybe something, maybe nothing. But it gets bound to the same name, and that's great. So here, like most class decorators, is a simple descriptive decorator. It takes the class, it prints the class, it returns the class. It didn't really do anything to it. We just see that when we declare this class with my decorator, it prints the class. We could do a little bit more. Here's a graffiti decorator. When we get a class through the graffiti decorator, it tags the class. It applies a tag that says Killvary was here. We may find something to do with that. The metaclass is a favorite for this sort of thing, but to define it loosely, this actually existed well before Python 2.2, but it was something that only existed in the C code, and it still exists there in some other forms. But in Python 2.2, and ever since, it was exposed in the Python level, and it is the class of a class. So we can see this very simply. We create a class, and we say, what's dunder class? OK, it's type. Fine. Well, we inherit from type. We define that. We create a class, but we say the metaclass is my meta, and we ask, what's the class of this? OK, that's my meta. Well, OK, fine. Let's do something. Normally, if we create a class and we say, what's the truthiness of this? It's true. There's some rules about that. We'll break them. Let's create a metaclass that defines a dunder-bool method. Now, of course, the dunder-bool method applies to instances of that class, and it says, what's the truthiness of instances of this class? OK, so we'll set the metaclass of our negativity class to be false meta, and now we ask, what the truthiness of the class object is. OK, now we have a class where the class object itself is false. OK, there's some other things on here. I just told you what the method resolution order is doing. The metaclass lets us define what it is. Surely not relevant. So yeah, right there, def-mro lets you set what the method resolution order will be. There's another one I actually do not show you, but I will point out to you. Dunder-nu lets you totally define what the class is going to be as it passes through the metaclass. So if I haven't done enough here, go ahead and look that one up after the talk. Python 2.7 gave us operator overloading for, or effectively operator overloading for, is instance and is subclass via new magic methods on the metaclass. These are called subclass check and instance check. This was done to support abstract base classes. If you start thinking about how something like the mapping abstract base class or the sequence abstract base class has to work, it has to do some checking to figure out whether that is or is not a mapping. These return true or false, or they probably should go ahead and call super to figure out whether you have a subclass or an instance. So just to show you how those work, here's a check-checked meta that's just a probe. We'll figure out when you're calling. And check-checker has this metaclass. And then is none an instance of check-checker? Well, false, of course it's not, but we'll just print out the fact that you asked. Is object a subclass of check-checker? No, but thanks for asking. The last one we're going to use is a Python 3.6 feature. In its subclass, added the ability of a class to control the initialization of subclasses. It's basically a built-in class decorator. It's basically a built-in class decorator. The signature is like this. And usage of this is something like this. Let's say I want to say all subclasses of my class have one extra attribute, class field count, that says how many attributes there are in the class stick. OK, fine. It's a bit weird, but I can count them up after you initialize the class and add that. So here, sized container has this in its subclass magic method. And jar is a sized container. It has pickles. It has some number of pickles. And it has some amount of juice in it. And it has a field count of four. That's the name, the module, the pickles, and the juice. OK, let the games begin. So abstract-based classes are great. Abstract-based classes are wonderful. But they do allow you to have a mix of abstract and concrete methods. And for some reason, let's say we didn't want that. Let's say for some reason we did not want any concrete method on our interfaces. So here, where we're defining this sloppy interface that has a mix, we do not want it to be making sandwiches. When someone calls make sandwich afterwards, we would like it not to be there at all. So how can we do this? Well, we could put a class decorator there that simply removes it like that. We simply look at the field. We look at the descriptor. If the descriptor is not an abstract method, and the field is not one of these fields that we probably should leave alone. Dict module, let's leave the documentation. If anyone was kind enough to write it, we'll leave it there. Weak reference, abstract methods. You probably should expand this list if you write this into production. Or more accurately, don't write this into production. We'll delete that. And that will be your class. Now, there is a problem with this, probably a few more. But the problem is we're assuming that the developer that forgot they weren't supposed to put concrete methods here will remember to put the class decorator there. So let's not count on that. Let's use an it subclass. Because then if they inherit from the right thing, which we can probably check automatically, they will automatically have their transgressions removed for them. So this is the same code. It's just put into Dunder in its subclass. And then we can inherit from that. And that will remove it. This creates its own problem, because now it's there. And trying to actually implement it will have every time you try to implement it, every implementation removed. So at some point, you will need to actually create a real sandwich, which we'll need to remove in its subclass, so that you can actually define a brief brisket sandwich. So you probably should do something a little bit different. Real talk here. Abstract-based classes are fine. This is an inferior replacement. But doing something to enforce some degree of convention standard or implementation through an it subclass is something you may wish to do, because this is controlling the construction further down. OK. Moving on, let's assume we'll someday write code based on types, but none of that is ready yet. So here we have stock and preferred stock. They're basically stubs. IBM Common and IBM Preferred, IBM C&P, are also just stubs. You can see the type flags line these up. But if we do, is IBM C a subtype of preferred stock? Of course, it's not. IBM Common Stock is not preferred stock. But is IBM C a subtype of common stock? Yeah, sure. But if we look at the bases, there's nothing backing this up. Is IBM C an instance of stock? Yeah? Yeah? OK, so I might have slipped something in behind here. And what I've slipped behind here is a meta class. It's the fake interface meta. You can see it there. And it's defining instance check and subclass check. And what these two are doing, instance check is just saying, well, it's an instance if the subclass passes. And subclass check is saying, well, if there's no type flag, do things normally. However, if there's a type flag, completely ignore any question of how you would normally check instance check. How you would normally check instances. Just look at the type flag. Real talk. This alone is not enough to justify using his instance's subclass. Generally, you would avoid doing that in preference to some degree of duct typing. But if you are already using it for other reasons, you can use this to enable special rules. You could use this if previously you had a class hierarchy. And now things are coming serialized out. And they turned into just plain ordinary dictionaries or plain old objects, or they're coming out of a database now. And you just need to check them and move along, or if they will be. OK. Let's take another example. I have some methods I don't want to inherit. So we have cars, and we have taxis. A car is an automobile. A car has a name. It's automobile. It has a method to start. Taxi is a kind of car. Fine. They start the same. Taxi, if I ask what its name is, it's a taxi. Car, if I ask what its name is, it's an automobile. Some of you may pick up something a little bit odd there, because taxi should be saying it's an automobile. But if we look at the method resolution order, we'll see that I've slipped something in. There is one additional class that's been inserted into the method resolution order, utility class. So when I look at the method resolution order of taxi, before it gets to car, where it would pick up the name of automobile, it's going to utility class and picking up something else. Of course, car has a base class of vehicle, and that has a meta class on it. And what's happening in that meta class? Oh, what's happening in that class? Well, I've attached the meta class. That method class is playing with the method resolution order. What it is doing is it's calculating the method resolution order normally using type, which is that base meta class. And it's saying, if utility class is in the method resolution order, remove it and then reinsert it in the second position, exactly where we found it. The utility class is simply a class that has a property called name and says, use the class name, which gives us exactly the result we saw. Real talk. In my opinion, this might actually be the safest thing to use in this talk. Not so much that you would want to use it in code that you're developing around. This would be used more around a configuration file, something where you're creating a domain-specific language, or a very limited subset, perhaps used by analysts, or a special purpose section of your code that is known to obey special rules like this. But within that context, inserting something like this to control what can and cannot happen is fairly reasonable. So you know what? I'm tired of the diamond. Let's give it to this diamond. Here's the diamond from the beginning. Let's put an N to it. Here's what I want. You write A, B, C, D. You write the darn diamond. I'm taking C out. You can write it, but I'm not doing it. I'm just taking C out. And here's how I'm going to do it. I have simple object in there on A. Obviously, I'm going to throw a meta class in this. And what I'm going to do is I'm going to completely rewrite the method resolution order. The method resolution order I'm using is not C3. I am going to take the class. I'm going to traverse the bases. I'm going to take each thing in bases. I'm going to take the first base. I'm going to add that to the method resolution order. I'm going to return that. And that is going to be it. Whatever you put that was not the first base will be removed. I could probably write this real talk as don't do this. But the point is not that you would actually do this. The point is that you can pick and choose some features, not that you would pick and choose this feature. If you did something very close to this, you should probably raise an error for your users, especially in a development environment. In production, you might want to do something that avoids errors if you could do something exactly specific and clear and that were exactly safe to do. Which it's probably not. But you would know your system. But the overall point is that you can pick features. If you did something ever close to this, you probably should remove the base classes so that it doesn't test as it is an instance of this when it clearly no longer is by most conventions. So we've seen four hooks that let us twist inheritance into a relative pickle. Class decorator in its subclass, subclass check and instance check, and the meta class MRO method. Well, it's rare that we actually want to tweak these. The results when we do are quite frankly rather dramatic. Usually we go to, it's more important to know these exist for when we bump into something that has tweaked these or for when we want to temporarily tweak these to find out what's happening. Insert a probe on one of these. See what has happened. Real cases for tweaking these tend to be centered around domain specific languages or creating a highly specific section or a highly specific framework. They're what I call shovels. They are good for getting yourself out of a hole but should not be used early for fear of digging yourself into a hole and leaving you at the bottom of a hole with a broken shovel. And with that, if there's any time left, I will take some questions. There's a career page up there for anyone that needs it. Thank you very much, Andy. We have time for one question if it's quick. OK, I'm going to play like John Humphries. You have 30 seconds. Let me check that I've understood this. So I can subclass tuple and by playing with the MRO, I can hide all the elements from item access. You could hide. By playing with the MRO, you could hide. I subclass tuple and tuple has got item access methods. Yep. Can I subclass tuple and prevent ordinary item access? Of course. I mean, you could just implement a new item access method that doesn't do it. Yeah, yeah. OK, so what difference would you like to do? To make it not even show up in the IDE, that depends how the IDE is searching for it. You could remove it from probably, it depends how the IDE is searching for it. Because at some point, you could subclass tuple and make it not be a tuple. And then the IDE wouldn't find it, but it also wouldn't be a tuple. So let's bring that to a close. I think the answer is probably yes and no, and it's a crazy thing to do. Thank you very much, Andy.


Welcome to the Hindu News Analysis by Shankarayesh Academy. The displayed articles have been chosen for today's analysis from Chennai, Bengaluru, Delhi, Hyderabad and Tiruvannanthapuram Editions. Now let us start our discussion. This discussion is based on National Blindness and Visual Empowerment Survey of India 2015-19. The syllabus to this discussion is given here for your reference. The Ministry of Health and Family Welfare has released a report titled as National Blindness and Visual Empowerment Survey of India. It was conducted among the individuals of age group of more than or equal to 50 years. This survey was conducted by Dr Rajendra Prasad Center for Optimist Sciences. The center is an integral part of all India Institute of Medical Sciences that is AIMS. Their optimistic means relating to the eye and eye diseases. An ophthalmology means the branch of medicine that is concerned with the study and treatment of diseases and disorders of the eye. Also note that this Dr Rajendra Prasad Center for Optimist Sciences is the apex institution under the National Program for Control of Blindness. We will see about this program in later part of this discussion. The survey has many findings with respect to blindness and visual impairment. Before discussing about the findings, let us first know about what is meant by blindness and visual impairment. Here blindness is defined by the National Program for Control of Blindness that is based on WHO definition. Blindness is the inability of a person to count fingers from a distance of 3 meters or 10 feet and then having 3 by 60 vision with the best possible spectacle correction. Next visual impairment is when a person has loss of sight that cannot be fully corrected using glasses or contact lenses. There are two main categories of visual impairment. One is being partially sighted or sight impaired where the level of loss of sight is moderate. Second is the severe sight impairment that is known as blindness where the level of sight loss is so severe that activities that relay on eye sight become impossible. So visual impairment also includes blindness. Blindness can be caused due to numerous conditions but the leading causes of blindness are cataract, refractive errors, trachoma, childhood blindness and so forth and so on. Now based on today's discussion it becomes important to know about cataract. Cataract is defined as the opacity of the lenses of the eye. Patients with cataract have a gradual loss of vision but without any pain. The most important symptom of cataract is painless, progressive blurring of the vision. In advanced cases of cataract the pupil appears to be chalky white or greenish gray in color as you can see in this picture. This patient should be referred to the nearest eye hospital for surgery as soon as possible. It is because loss of vision from cataract is a major cause of blindness in developing countries and it can be treated successfully with existing technology. So when a person is affected with cataracts the vision of that person may be cloudy or fuzzy and bright light may cause glare. It is said that about 85% of cataracts are classified as senile which means that the causes of cataract are unknown. In this the congenital cataract is of concern because it affects the infants and young children also. Therefore if congenital cataract is left untreated it causes lifelong blindness. Now with this background in mind let us discuss the findings of national blindness and visual impairment survey of India. The survey found that in India cataract is the principal cause of blindness for people above the age of 50 years. The survey found that cataract is the cause for about 66.2% of cases of blindness. It is the cause for about 80.7% of cases of severe visual impairment and also for about 70.2% of cases of the moderate visual impairment in the age group of about or above the age of 50 years. We already saw that cataract can be successfully treated with the existing technology. Then why it is still the principal cause of blindness among the persons who are above the age of 50 years? The survey has found an answer for this. It is due to the barriers for accessing treatment. This barriers includes the reasons or conditions such as no one or no person is accompanying the patient and then seasonal preferences. Then also some local reasons and also financial constraints is a reason for unable to access the treatment. Then about 18.4% of the cases lack of awareness was a reason because they did not feel any need of the surgery. The survey has found that among men and women the most important barriers are financial constraints and local reasons. Then next finding is that blindness is more pronounced or more prominent among illiterate people than literate people. Next finding is that blindness is more prevalent in the rural population than urban areas. The district with highest prevalence of blindness and visual impairment was Bijanur in Uttar Pradesh as per the survey which accounted for about 3.67% and 21.82% of cases respectively. That is all about the survey. Now let us discuss about the national program for control of blindness. First remember that national program for control of blindness or NPCB has been re-designated as national program for control of blindness and visual impairment which in short is NPCBVI and it is a 100% centrally sponsored scheme which means it is a central sector scheme. Its main objectives are to reduce the backlog of blindness through identification and treatment of blindness at all levels that is at primary level, secondary and tertiary levels. It will be based on assessment of the overall burden of the visual impairment in the country. Next objective is to develop and strengthen the strategy of NPCBVI for eye health and prevention of visual impairment. It will be done through the provision of comprehensive eye care services and quality of service delivery and other objective is to enhance community awareness on eye care and to lay stress on preventive measures. With this we have come to the end of this topic. The displayed question will be discussed at the end of this session. Now let us move on to the next news article. This news article is the emerging challenges cited by the National Investigation Agency at the National Conference of Chiefs of Anti-Terror Squads of State Police. This news article is about the statements made by the National Security Advisor with respect to judiciary and media. The syllabus relevant to the analysis of these news articles has been highlighted here for your reference. The major emerging challenges cited by the NIA or the circulation of high quality fake Indian currency nodes then increase in Kalistani activities that is increase in activities with respect to having a separate country called Kalistani for people following the Sikh religion. The news article is however focused on fake Indian currency nodes. Here high quality fake nodes are not easily identifiable by the common public. The article states that in the last 3 years fake currency worth of about 50 crore value has been seized in India. The NIA says that the main source of high quality fake Indian currency nodes is Pakistan. These nodes are pumped into India via the western border of India and also along the border with Nepal. There are also low quality fake Indian currency nodes. For these nodes the main source is Bangladesh. Know that one of the main reasons for demonetization exercise is to wipe out fake Indian currency nodes or to make them useless. But as per NIA such nodes have resurfaced again. Fake Indian currency nodes are the work of those terrorists who want to cripple Indian economy. If they can print high quality fake nodes it means they can exchange them to get hold of original nodes. And these acquired genuine currency could be used for terror activities. Also in India RBA manages the liquidity by altering the repo and reverse repo rates. This is based on the currency in circulation and also on various other parameters. But RBA may not know how much fake Indian currency nodes are in circulation. As a result the desired objectives and the targets of RBA and government of India could not be effectively achieved because of circulation of fake Indian currency nodes. For the more the high quality fake nodes the lesser is the credit worthiness of the country. So the issues with respect to fake Indian currency nodes has to be taken at the level of bilateral talks at least with three countries one for sure Pakistan then Nepal and Bangladesh. Now let us see the next article based on the statements made by the national security advisor in the national conference of chiefs of anti-terrorist clads of state police. The national security advisor has spoken about two issues one is about judiciary. He mentioned that judiciary should not treat the terrorism related cases on par with ordinary and other crimes. The main reason for such a statement is that in most of the circumstances no eyewitness will come forward as a witness to testify or depose before the court in terrorism related cases because of fear factor. The next issue mentioned by the national security advisor is about the media. He mentions that there shall be change in the media policy in reporting of terror incidents that are potential to create terror among the public. The advisor has asked the media to exercise restraint that is not to report the fear generating terror activities in the media. This is because the main aim of the terrorist is to create terror or to create extreme fear among the people but to create it they need media. Why terrorists need media? This is because media acts as the agent of creating publicity for the terrorist by reporting terrorist incidents. Terrorist depends on the oxygen of publicity to instill fear among the public. If media changes its policy and exercise restraint then it will mean the terrorist are starving and becoming weak. But in present times with the penetration of internet reporting of terror incidents create fear among the people across the borders even in places that are far or not connected with the place of occurrence of terrorist incident. So the national security advisor has asked the media not to be a valuable and freely serving tool of the terrorist rather to create courage among the people at least not to create fear by reporting the terror incidents. These are some of the information with respect to analysis of this news article. This article is about North East Monsoon. The syllabus to this discussion is given here for your reference. The article says that the state of Tamil Nadu is said to receive North East Monsoon around October 17th. In this contest let us understand in detail about the Indian Monsoon. Note that Monsoon has originated from the Arabic word mausam which means season. It is most often applied to the seasonal reversal of the wind direction along the shores of Indian Ocean especially in the Arabian Sea. It blows from the southwest during one half of the year and from the northeast during the other. So, Monsoons are seasonal winds which reverse the direction with the change of season. It is to be noted that monsoons are more pronounced in the Indian subcontinent compared to any other region. Further, it is to be noted that seasons in India are classified into four seasons that is winter season from January to February, pre-monsoon season from March to May, southwest monsoon season from June to September and northeast monsoon season from October to December. During summer in northern hemisphere, due to the high temperature, a low pressure system will be formed over the Tibetan Plateau. Southwest monsoons are formed due to this phenomenon. During winter, high pressure system is created over Tibetan Plateau and Siberian Plateau. The northeast monsoons are associated with this system. It is to be understood that southwest monsoons bring intense rainfall to most of the regions in India. In case of northeast monsoons, these monsoons bring rainfall to mainly southeastern coast of India like Tamil Nadu and part of Andhra Pradesh. Now let us understand factors responsible for the formation of southwest monsoon. The factors are intense heating of the Tibetan Plateau in summer and the formation of permanent high pressure near Madagascar in southern Indian Ocean. And also other factors that influence the onset of monsoon are Indian Ocean Dipole and Somali Jet. Now let us discuss the factors responsible for the formation of northeast monsoon. First factor is that the formation and strengthening of high pressure system over Tibetan Plateau and Siberian Plateau in winter season. Secondly, the westward migration and subsequent weakening of the high pressure system in southern Indian Ocean. And thirdly, shifting of ITCZ to the south of India during winter season. Here ITCZ or Intertropical Convergence Zone is a belt of low pressure system which circles the earth generally near the equator. It is the zone where the trade winds of the northern and southern hemisphere converges. Note that ITCZ follows the sun so that the position varies seasonally. It moves north in the northern summer and south in the northern winter. Now let us discuss the role of these factors in detail. During summer, sun's position is apparently over the tropic of cancer that is 23.5 degrees northern latitude. This results in a low pressure and high temperature in Central Asia. At the same time, pressure of the Indian Ocean is sufficiently high due to differential heating of land and water. Note that land heats and cools more easily than water. So winds flow from ocean to the land mass. This results in southwest monsoon. In winter season, sun's apparent position is vertically over the tropic of Capricon that is 23.5 degrees southern latitude. So the land mass develops high pressure while oceans develop low pressure. Thus, the flow of the monsoon is reversed to form northeast monsoons. Now let us discuss the shifting of ITCZ and its impact on Indian monsoon. As we have discussed that ITCZ follows the position of sun, so southeast trade winds of the southern hemisphere cross the equator and start blowing over the Indian subcontinent as southwest monsoon due to Coriolis force. In winter season, the ITCZ shifts southward and the northeast trade wind flows over the Indian subcontinent as northeast monsoon. Now let us discuss the role of Indian Ocean Dipole on Indian Monsoon. IOD is the difference in sea surface temperature between the two poles that is a western pole in Arabian Sea and an eastern pole in eastern Indian Ocean. During a positive IOD, winds in Indian Ocean flows from east to west. This results in a trot and dry condition in the eastern side that is in Indonesian and Australian side and rainfall in the western side. In case of negative IOD, the reverse happens. Here winds flow from west to east and results in rainfall in the eastern region. Now we will look into the role of Somali Jet on Indian Monsoon. The progress of southwest monsoon towards India is aided by the onset of Somali jet that passes through Somalia and Kenya. This temporary jet stream helps to strengthen the permanent high near Madagascar. This increases the pace of southwest monsoon towards India. So the northeast monsoon advances as soon as the southwest monsoon retreats. There are several criteria for discussing the onset of northeast monsoon. They are withdrawal of southwest monsoon up to 15 degrees NL, onset of persistent surface easterlies over Tamil Nadu coast, fairly widespread rainfall over the coastal Tamil Nadu and adjoining areas. Onset is not to be declared before 10th of October even if the conditions described above exist. Now let us come back to the news article. It also mentions that South Asian Climate Outlook Forum, that is SAS COF. It has earlier predicted a normal monsoon over the southern peninsula in 2019. Here for your prelims exam, you should also know about South Asian Climate Outlook Forum. This forum was established in 2010. It is coordinated by the Indian Meteorological Department. This forum covers countries of Afghanistan, Bangladesh, Bhutan, India, Maldives, Myanmar, Nepal, Pakistan and Sri Lanka. This South Asian Climate Outlook Forum prepares the seasonal climate information on a regional scale that provides a consistent basis for preparing national level outlooks. With this information, we have come to the end of the discussion of this topic. The despite practice question will be discussed at the end of this session. This editorial article is with reference to the existing criminal jurisdiction to offenses committed in outer space. When we say outer space, it is the zone that starts at about 100 kilometers from the surface of the earth. The syllabus relevant to this news article has been highlighted here for your understanding. Recently in the month of August, the world's first space crime has been reported. Here the case is that one of the Nasa's astronauts was accused of signing into the personal bank account of a spouse. The law that is applicable in this case of offense is the International Space Station Intergovernmental Agreement. It mentions that those states which are party to this agreement may exercise criminal jurisdiction both astronauts and such other personnel. At present, there are five United Nations treaties on outer space. These are Outer Space Treaty, the Moon Agreement, the Registration Convention, the Rescue Agreement and the Liability Convention. For a brilliant perspective, note that India has ratified four of these conventions. India has not ratified the Moon Agreement, but India is a signatory to the Moon Agreement and also other four agreements are ratified by India. Now come back to the article, the authors states that even though we have such international conventions, these documents don't have a detailed framework to address the criminal disputes that may arise in commercial space vehicles and even international space station could be open for commercial opportunities in the future. The other point is that before that, all legal work related to the commercial vehicles and private space corporations has to be completed. This year we have witnessed one private landing mission to the Moon with the support of Israel Government. Here the mentioned mission is about a Bairsheet mission, but this mission, however, could not carry out soft landing. There could be more such missions to space, even India will also send humans to space. This will get a big boost, particularly after India carries out the Gagan manned mission by 2022. India could set up its own space station, it will collaborate with international space station. Likewise, there could be many more autonomous space stations that may come up in the future in our outer space. Some of this could be even private space stations also. With respect to India collaborating with international space station, India will require to be a party to intergovernmental agreement or it has to sign a necessary agreement with the ISS nations. So who are these ISS nations and what is this international agreement? Know that the International Space Station is a cooperative program between United States, Russia, Canada, Japan and 11 member states of European Space Agency. These 11 member states of ESA are Belgium, Denmark, France, Germany, Italy, Netherlands, Norway, Spain, Sweden, Switzerland and the United Kingdom. Note that ISS is governed by an international treaty called the ISS Intergovernmental Agreement. This agreement is signed by these member states on 29th January 1998. This agreement provides the framework for design, development, operation and the utilization of a permanently inhabited civil space station for peaceful purposes. So on one hand, as a space power, India will have to become a party to this intergovernmental agreement or it has to develop necessary MOUs with the ISS nations and the Associated Space Agencies before it sends humans to space. Also, India has to include the offenses in space in its Indian Penal Code. Therefore, India's space achievements have to be blended with the formulation of visionary laws. These laws should not give room to any confusion and these laws should cater to the needs of rapidly evolving space science. These measures have to be taken urgently and rigorously to the situational complexities of space exploration. The authors conclude by saying that, only if India keeps space with explosive growth in space technology, India can remain in the forefront of scientific developments in the field of space. And alongside, legal issues have to be taken care of. With this, we have come to the end of this editorial. The displayed question will be discussed at the end of this session. Now let us move on to the next article. This article says that, Noble price in economic sciences is given for Abhijith and two others. The syllabus for this article is given here for your better understanding. The new article is about, the recently announced Noble price in economics. The price was awarded jointly to Abhijith Benerjee, Esther Duflo and Michael Kramer. It is to be noted that Abhijith Benerjee is an Indian origin American economist. In 1968, Stavris Riksbank, that is Sweden's central bank, established the price in economic sciences in the memory of Alfred Nobel, who is the founder of the Nobel Prizes. The Stavris Riksbank price in economic sciences in the memory of Alfred Nobel is popularly known as the Noble price in economic sciences. It is awarded for the outstanding contributions in the field of economics. The price in economic sciences is awarded by the Royal Swedish Academy of Sciences, which is located at Stockholm, the capital city of Sweden. This year, the Noble price in economics is awarded to the three persons for their experimental approach to alleviate global poverty. Now let us discuss the contribution of these noble laureates. They have introduced a new experiment based approach in the field of development economics. It is to be noted that development economics is a branch of economics that focuses on improving the economic and social conditions in the developing or low income countries. So this year, Noble price will bring more attention to the field of development economics in the policy making. Now let us understand what is meant by new experiment based approach. In simple terms, this approach breaks down large questions about any issue to smaller and more manageable questions than the field experiments will be used to solve them. The laureates have shown that the smaller and more precise questions are often best answered by a carefully designed experiments among the people who are most affected. This method was used way back in the mid 1990s and now their experimental research methods entirely dominate in present various policies. The Royal Swedish Academy of Sciences said that this method has considerably increased our ability to fight global poverty. Further, this method helps to understand the impact of interventions to achieve desirable outcomes. Now let us discuss some of the outcomes of the experimental study with the given examples here. For example, the impact of this study in the field of remedial tutoring. It is to be noted that remedial tutoring programs are designed to close the gap between what a student knows and what he is expected to know. According to the article, as a direct result of their studies, more than 5 million Indian children have benefited from effective programs of remedial tutoring in schools. Now let us consider the field of health. One study says that even small differences in prices of medicines can lead to different health outcomes, particularly in preventive health care. This shows that essential medicines and medical services should be subsidized or made free to make them reach the poor. Their study paved the way for heavy subsidy in preventive health care in several countries. Subsequently, the World Health Organization recommended that medicine be distributed at no cost to more than 800 million school children in areas where more than 20% have a certain kind of parasitic worm infection. Today, every country is focusing on development, but still millions of people are living under poverty. In the developing and poor countries, millions of children are dying each year before their fifth birthday, often from the diseases that could be prevented or cured with relatively cheap and simple treatment. So the recognition of a new experiment-based method that can strike at the root cause of poverty is welcome step. Therefore, the fieldwork-based approach that these economists have developed has revolutionized the field of development economics and made it more relevant in policy making. With this, we have come to the end of discussion of this topic. The displayed practice question will be discussed at the end of the session. Now let us discuss practice questions. Now, this question is with reference to National Blindness and Visual Empowerment Survey of India. In this question, three statements are given and which among the above statement is or correct. Statement one says that the survey is conducted by the Ministry of Health and Family Welfare. From our discussion, we have seen that the survey report was released by Ministry of Health and Family Welfare, but the survey is not conducted by the Ministry. It is conducted by Dr. Rajendra Prasad, Centre for Optimist Sciences, which is a part of AIMS. Therefore, the statement one is incorrect. Now the second statement is based on the definition of visual impairment. So from our analysis, we have discussed that visual impairment is when a person has loss of sight and that cannot be fully corrected using glasses or contact lenses. Note that there are two main categories of visual impairment. One is being partially sighted where the level of loss of sight is moderate. The second is that severe sight impairment that is known as blindness where the level of sight loss is so severe that activities that rely on eyesight become impossible. So visual impairment also includes blindness. Therefore, the second statement is correct statement. We have discussed that based on the news article that the cataract is the principal cause of blindness for people above the age of 50 years. Therefore, the third statement is also correct statement. Remember that the cataract is the opacity of lenses of eye. Thus for this question, option D that is statement two and three are correct. Now let us move on to the next question. Now consider this question. This question is based on Indian monsoon and factors affecting Indian monsoon. We have discussed that monsoon has originated from the word mausam which means season. So monsoons are seasonal winds which reverse the direction with the change of season. Here the statement one says that Indian monsoons are seasonal winds which reverse the direction with the change of season. From our analysis we have seen that the Indian monsoon is a double system of seasonal winds that is they flow from sea to land during summer season and from land to sea during winter season. Therefore, the statement one is correct. Further we have discussed that Indian monsoon is affected by the factors like Somali jet, Indian ocean dipole, differential heating of land and water, Elino phenomena etc. From our analysis, the progress of southwest monsoon towards India is aided by the onset of Somali jet. This temporary jet stream helps to strengthen the permanent hide near Madagascar. This increases the pace of southwest monsoon towards India. Here the second statement says that the Somali jet strengthens the pace of southwest monsoon towards India. Therefore, the second statement given is also correct. Now consider the third statement it says that positive Indian ocean dipole shall have positive impact on Indian monsoon. We have discussed that IOD is the difference in sea surface temperature between two poles that is a western pole in Arabian sea and an eastern pole in eastern Indian ocean. Having a positive IOD wins in Indian ocean flows from east to west. This results in favorable conditions for Indian monsoon. Therefore, the third statement given is also correct and it says that positive Indian ocean dipole shall have positive impact on Indian monsoon. Thus, for this question option D that is all the given statements are correct. This question is based on the space state is that are not being ratified by India. For this question they have given four conventions here or treaties that is outer space treaty, registration convention, rescue agreement and the moon agreement. From our analysis we have discussed that there are five UN based space treaties and one is that outer space treaty. We have discussed that this treaty was ratified by India and this treaty deals with principles governing the activities of states in the exploration and use of outer space including moon and other celestial bodies. Now the registration convention which is also being ratified by India deals with objects launched into outer space. In case of liability convention, this convention on international liability for damage caused by space objects is also being ratified by India. Now in case of rescue agreement which is also being ratified by India, this agreement on the rescue of astronauts deals with the return of astronauts and the return of objects launched into outer space. Finally, the moon agreement which India has not ratified though it is a signatory it deals with agreement governing the activities of states on the moon and other celestial bodies. Therefore, for this question option D that is moon agreement has not been ratified by India. Therefore, option D is correct answer. Question is about Nobel Prize in Economic Sciences 2019. Here two statements are given. Out of these two statements you have to select the correct option. From our analysis, we have discussed that in 1968, favourites rick bank that is Sweden's central bank established the prize in economic sciences in the memory of Alfred Nobel. This prize is popularly known as the Nobel Prize in Economic Sciences. Further, we have discussed that the prize in economic sciences is awarded by the Nobel Swedish Academy of Sciences. Therefore, the second statement is correct as it mentions that the prize was awarded by the Royal Swedish Academy of Sciences. Further, we have discussed that Nobel Prize in Economics of 2019 was awarded to Abhijit Benerchi, Easter Duflo and Michael Kremer for their experimental approach to alleviate global poverty. This approach breaks down large questions about any issue to smaller and more manageable questions then followed by field examination of the questions. This year, Nobel Prize in Economics recognized the new approach and it is having the universal application in fighting against global poverty. Therefore, the statement 1 says that the prize was awarded for introducing new experiment-based approach in the field of development economics. Therefore, statement 1 is also correct. For this question, the correct answer is option C that is both 1 and 2. Now, let us discuss practice mains question. The question is about critically analyze the need for including the offences in space in Indian Penal Code. So for this question, you have to examine why there is need for including the offences in space in our Indian Penal Code and suggest way forward. We have discussed that as only Indian laws are not dealing with the pros and cons with respect to offences that are committed in outer space. And you know that India is also aiming to send humans to space through Gagani and mission by 2022. As a nation that has to keep pace with explosive growth in space technology, India should also keep these legal arrangements in place as a responsible space power. Having such measures would help India to take necessary legal steps if an Indian is affected or victimized in space or there could be a situation that an Indian in earth could be victimized from any foreign nation from outer space. Recently, we have seen the allegation on the NASA astronaut that she has signed into the personal bank account of a spouse living in the earth. Such situations may arise and necessary protection measures has to be enshrined in the substantial criminal law that is Indian Penal Code. Alongside, needed procedural and evidences related to pros and cons shall also be made in Procedural Codes and Indian Evidence Act and if India has to collaborate effectively it requires such legal arrangements both at the national and also at the international level. For international level, we may require becoming party to the ISS intergovernmental agreement or signing necessary memoranda of understanding with countries or relevant space agencies to deal with offences from space. Finally, you may conclude your answer by adding such a chapter of offences in space would make Indian criminal law a comprehensive one in the world. At the same time, protecting the interests of Indian citizens from the threats that may emanate from outer space. With this, we have come to the end of today's news analysis. Thank you.